@opentui/core 0.5.9 → 0.5.10
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/{chunk-bun-b0662dgp.js → chunk-bun-9gqvxy8c.js} +37 -4
- package/{chunk-bun-b0662dgp.js.map → chunk-bun-9gqvxy8c.js.map} +3 -3
- package/{chunk-bun-jxfx3h5k.js → chunk-bun-bb3k0yt8.js} +129 -42
- package/{chunk-bun-jxfx3h5k.js.map → chunk-bun-bb3k0yt8.js.map} +3 -3
- package/{chunk-node-dcyj0dm5.js → chunk-node-6bg8r2m7.js} +129 -42
- package/{chunk-node-dcyj0dm5.js.map → chunk-node-6bg8r2m7.js.map} +3 -3
- package/{chunk-node-zcz10bhr.js → chunk-node-f647ts9q.js} +37 -4
- package/{chunk-node-zcz10bhr.js.map → chunk-node-f647ts9q.js.map} +3 -3
- package/image.d.ts +25 -1
- package/index.bun.js +80 -6
- package/index.bun.js.map +4 -4
- package/index.node.js +80 -6
- package/index.node.js.map +4 -4
- package/package.json +9 -9
- package/renderer.d.ts +21 -2
- package/testing.bun.js +2 -2
- package/testing.js +2 -2
- package/yoga.bun.js +1 -1
- package/yoga.js +1 -1
- package/zig.d.ts +11 -1
package/index.node.js.map
CHANGED
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"export function parseIcyMetadata(bytes: Uint8Array, decoder: TextDecoder): Readonly<Record<string, string>> | null {\n const decoded = decoder.decode(bytes)\n const nul = decoded.indexOf(\"\\0\")\n const text = nul === -1 ? decoded : decoded.slice(0, nul)\n if (text.length === 0) return null\n\n const fields: Record<string, string> = Object.create(null)\n let found = false\n let offset = 0\n while (offset < text.length) {\n const separator = text.indexOf(\"='\", offset)\n if (separator === -1) break\n const key = text.slice(offset, separator)\n if (key.length === 0 || /[';=]/.test(key)) break\n const end = text.indexOf(\"';\", separator + 2)\n if (end === -1) break\n Object.defineProperty(fields, key, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: text.slice(separator + 2, end),\n })\n found = true\n offset = end + 2\n }\n return found ? Object.freeze(fields) : null\n}\n",
|
|
47
47
|
"import { parseIcyMetadata } from \"./metadata.js\"\nimport type { AudioStreamMetadata } from \"../../audio.js\"\nimport type { AudioStreamDemuxer, AudioStreamDemuxOutput } from \"../demuxer.js\"\n\nexport interface IcyStreamDemuxerOptions {\n metadataInterval: number\n metadataEncoding?: string\n headers?: Readonly<Record<string, string>>\n}\n\nconst EMPTY_FIELDS: Readonly<Record<string, string>> = Object.freeze(Object.create(null))\n\nfunction copyHeaders(headers: Readonly<Record<string, string>> | undefined): Readonly<Record<string, string>> {\n const copy: Record<string, string> = Object.create(null)\n for (const [name, value] of Object.entries(headers ?? {})) copy[name.toLowerCase()] = value\n return Object.freeze(copy)\n}\n\nfunction fieldsEqual(left: Readonly<Record<string, string>>, right: Readonly<Record<string, string>>): boolean {\n const keys = Object.keys(left)\n return (\n keys.length === Object.keys(right).length &&\n keys.every((key) => Object.prototype.hasOwnProperty.call(right, key) && left[key] === right[key])\n )\n}\n\nexport class IcyStreamDemuxer implements AudioStreamDemuxer<AudioStreamMetadata> {\n readonly initialMetadata: AudioStreamMetadata\n private audioRemaining: number\n private metadata: Uint8Array | null = null\n private metadataOffset = 0\n private fields = EMPTY_FIELDS\n private readonly interval: number\n private readonly decoder: TextDecoder\n private readonly headers: Readonly<Record<string, string>>\n\n constructor(options: IcyStreamDemuxerOptions) {\n if (!Number.isSafeInteger(options.metadataInterval) || options.metadataInterval < 0) {\n throw new TypeError(\"metadataInterval must be a non-negative safe integer\")\n }\n this.interval = options.metadataInterval\n try {\n this.decoder = new TextDecoder(options.metadataEncoding ?? \"iso-8859-1\")\n } catch {\n throw new TypeError(`Unsupported metadataEncoding: ${options.metadataEncoding}`)\n }\n this.headers = copyHeaders(options.headers)\n this.audioRemaining = this.interval\n this.initialMetadata = Object.freeze({ format: \"icy\", headers: this.headers, fields: this.fields })\n }\n\n *push(chunk: Uint8Array): IterableIterator<AudioStreamDemuxOutput<AudioStreamMetadata>> {\n if (this.interval === 0) {\n if (chunk.byteLength > 0) yield { type: \"audio\", data: chunk }\n return\n }\n\n let offset = 0\n while (offset < chunk.byteLength) {\n if (this.audioRemaining > 0) {\n const length = Math.min(this.audioRemaining, chunk.byteLength - offset)\n yield { type: \"audio\", data: chunk.subarray(offset, offset + length) }\n offset += length\n this.audioRemaining -= length\n continue\n }\n\n if (this.metadata == null) {\n const metadataLength = (chunk[offset] ?? 0) * 16\n offset += 1\n if (metadataLength === 0) {\n this.audioRemaining = this.interval\n continue\n }\n this.metadata = new Uint8Array(metadataLength)\n this.metadataOffset = 0\n }\n\n const metadata = this.metadata\n const length = Math.min(metadata.byteLength - this.metadataOffset, chunk.byteLength - offset)\n metadata.set(chunk.subarray(offset, offset + length), this.metadataOffset)\n offset += length\n this.metadataOffset += length\n if (this.metadataOffset !== metadata.byteLength) continue\n\n const fields = parseIcyMetadata(metadata, this.decoder)\n this.metadata = null\n this.metadataOffset = 0\n this.audioRemaining = this.interval\n if (fields != null && !fieldsEqual(this.fields, fields)) {\n this.fields = fields\n yield {\n type: \"metadata\",\n metadata: Object.freeze({ format: \"icy\", headers: this.headers, fields }),\n }\n }\n }\n }\n\n *flush(): IterableIterator<AudioStreamDemuxOutput<AudioStreamMetadata>> {\n if (this.interval === 0) return\n if (this.audioRemaining === 0 || this.metadata != null) {\n throw new Error(\"ICY stream ended inside a metadata block\")\n }\n }\n}\n\nexport function createIcyStreamDemuxer(options: IcyStreamDemuxerOptions): AudioStreamDemuxer<AudioStreamMetadata> {\n return new IcyStreamDemuxer(options)\n}\n",
|
|
48
48
|
"import { createIcyStreamDemuxer } from \"./icy/demuxer.js\"\nimport type { AudioStreamMetadata } from \"../audio.js\"\n\nexport type AudioStreamDemuxOutput<M> = { type: \"audio\"; data: Uint8Array } | { type: \"metadata\"; metadata: M | null }\n\nexport interface AudioStreamDemuxer<M> {\n readonly initialMetadata: M | null\n push(chunk: Uint8Array): Iterable<AudioStreamDemuxOutput<M>>\n flush(): Iterable<AudioStreamDemuxOutput<M>>\n abort?(reason: unknown): void\n}\n\nexport type AudioStreamDemuxerFactory<M> = () => AudioStreamDemuxer<M>\n\nexport function selectAudioStreamDemuxer(options: {\n headers: Headers\n metadataEncoding: string\n}): AudioStreamDemuxer<AudioStreamMetadata> | null {\n const icyHeaders: Record<string, string> = Object.create(null)\n options.headers.forEach((value, name) => {\n if (name.toLowerCase().startsWith(\"icy-\")) icyHeaders[name.toLowerCase()] = value\n })\n const headers = Object.freeze(icyHeaders)\n const rawInterval = options.headers.get(\"icy-metaint\")\n if (rawInterval == null) {\n return Object.keys(headers).length === 0\n ? null\n : createIcyStreamDemuxer({ metadataInterval: 0, metadataEncoding: options.metadataEncoding, headers })\n }\n\n const value = rawInterval.trim()\n if (!/^\\d+$/.test(value)) throw new Error(`Invalid icy-metaint response header: ${rawInterval}`)\n const interval = Number(value)\n if (!Number.isSafeInteger(interval)) throw new Error(`Invalid icy-metaint response header: ${rawInterval}`)\n return createIcyStreamDemuxer({ metadataInterval: interval, metadataEncoding: options.metadataEncoding, headers })\n}\n",
|
|
49
|
-
"import { open, stat } from \"node:fs/promises\"\n\nimport { toArrayBuffer } from \"./platform/ffi.js\"\nimport { resolveRenderLib, type ImageHandle, type RenderLib } from \"./zig.js\"\nimport type { NativeImageInfo } from \"./zig-structs.js\"\n\nexport type ImageFormat = \"png\" | \"raw-rgba\" | \"jpeg\" | \"webp\" | \"gif\"\nexport type ImageColorStatus = \"assumed-srgb\" | \"explicit-srgb\"\nexport type ResizeKernel = \"default\" | \"area\" | \"triangle\" | \"cubic-bspline\" | \"catmull-rom\" | \"mitchell\" | \"nearest\"\nexport type BlendMode = \"source-over\" | \"source\" | \"destination-over\"\nexport type PixelFormat = \"rgba8\" | \"bgra8\"\nexport type ImageSource = string | URL | Uint8Array | ArrayBuffer | Blob | Response\n\nexport type ImageLoadErrorCode = \"file-read\" | \"network\" | \"http-status\" | \"unsupported-url-scheme\"\n\nexport class ImageLoadError extends Error {\n public readonly code: ImageLoadErrorCode\n public readonly source: string\n public readonly status?: number\n\n constructor(\n code: ImageLoadErrorCode,\n source: string,\n message: string,\n options?: { cause?: unknown; status?: number },\n ) {\n super(message, { cause: options?.cause })\n this.name = \"ImageLoadError\"\n this.code = code\n this.source = source\n this.status = options?.status\n }\n}\n\nexport interface ImageLoadOptions {\n signal?: AbortSignal\n fetch?: (input: URL, init?: RequestInit) => Promise<Response>\n}\n\nexport interface ImageInfo {\n width: number\n height: number\n sourceWidth: number\n sourceHeight: number\n format: ImageFormat\n colorStatus: ImageColorStatus\n orientation: number\n hasAlpha: boolean\n}\n\nexport interface ResizeOptions {\n width?: number\n height?: number\n kernel?: ResizeKernel\n}\n\nexport interface ExtractOptions {\n left: number\n top: number\n width: number\n height: number\n}\n\nexport interface ExtendOptions {\n top?: number\n right?: number\n bottom?: number\n left?: number\n background?: readonly [number, number, number, number]\n}\n\nexport interface CompositeOptions {\n left?: number\n top?: number\n blend?: BlendMode\n opacity?: number\n}\n\nexport interface RawImage {\n data: Uint8Array\n width: number\n height: number\n stride: number\n format: PixelFormat\n colorSpace: \"srgb\"\n alpha: \"straight\"\n}\n\nexport interface OwnedRawImage extends RawImage {\n dispose(): void\n}\n\nclass OwnedRawImageImpl implements OwnedRawImage {\n private handle: ImageHandle | null\n\n public readonly format = \"rgba8\"\n public readonly colorSpace = \"srgb\"\n public readonly alpha = \"straight\"\n\n constructor(\n public readonly data: Uint8Array,\n public readonly width: number,\n public readonly height: number,\n public readonly stride: number,\n private readonly lib: RenderLib,\n handle: ImageHandle,\n ) {\n this.handle = handle\n }\n\n public dispose(): void {\n if (!this.handle) return\n this.lib.imageDestroy(this.handle)\n this.handle = null\n }\n}\n\nconst STATUS_MESSAGES = [\n \"ok\",\n \"invalid image handle\",\n \"unsupported image format\",\n \"unsupported image color space\",\n \"malformed image data\",\n \"image dimensions exceed limits\",\n \"image memory limit exceeded\",\n \"invalid image argument\",\n \"out of memory\",\n \"image output buffer is too small\",\n \"internal image error\",\n \"unsupported image feature\",\n] as const\n\nexport type ImageErrorCode =\n | \"invalid-handle\"\n | \"unsupported-format\"\n | \"unsupported-color-space\"\n | \"malformed-data\"\n | \"dimension-limit\"\n | \"memory-limit\"\n | \"invalid-argument\"\n | \"out-of-memory\"\n | \"output-too-small\"\n | \"internal-error\"\n | \"unsupported-feature\"\n\nconst STATUS_CODES: readonly ImageErrorCode[] = [\n \"internal-error\",\n \"invalid-handle\",\n \"unsupported-format\",\n \"unsupported-color-space\",\n \"malformed-data\",\n \"dimension-limit\",\n \"memory-limit\",\n \"invalid-argument\",\n \"out-of-memory\",\n \"output-too-small\",\n \"internal-error\",\n \"unsupported-feature\",\n]\nconst INVALID_ARGUMENT_STATUS = 7\n\nexport class ImageError extends Error {\n public readonly code: ImageErrorCode\n public readonly status: number\n\n constructor(status: number) {\n super(`Native image operation failed: ${STATUS_MESSAGES[status] ?? `unknown status ${status}`}`)\n this.name = \"ImageError\"\n this.status = status\n this.code = STATUS_CODES[status] ?? \"internal-error\"\n }\n}\n\nconst FILTER_IDS: Record<ResizeKernel, number> = {\n default: 0,\n area: 1,\n triangle: 2,\n \"cubic-bspline\": 3,\n \"catmull-rom\": 4,\n mitchell: 5,\n nearest: 6,\n}\n\nconst BLEND_IDS: Record<BlendMode, number> = {\n \"source-over\": 0,\n source: 1,\n \"destination-over\": 2,\n}\n\nconst PIXEL_FORMAT_BGRA: Record<PixelFormat, boolean> = {\n rgba8: false,\n bgra8: true,\n}\n\nconst MAX_ENCODED_BYTES = 64 * 1024 * 1024\n\nfunction imageError(status: number): Error {\n return new ImageError(status)\n}\n\nfunction checkStatus(status: number): void {\n if (status !== 0) throw imageError(status)\n}\n\nfunction requireMappedOption<T extends string, V>(mapping: Record<T, V>, value: T, name: string): V {\n if (!Object.prototype.hasOwnProperty.call(mapping, value))\n throw new TypeError(`Unsupported ${name}: ${String(value)}`)\n return mapping[value]\n}\n\nfunction requireU32(value: number, name: string, allowZero = false): number {\n if (!Number.isSafeInteger(value) || value < (allowZero ? 0 : 1) || value > 0xffff_ffff) {\n throw new RangeError(`${name} must be ${allowZero ? \"a non-negative\" : \"a positive\"} u32 integer`)\n }\n return value\n}\n\nfunction requireI32(value: number, name: string): number {\n if (!Number.isSafeInteger(value) || value < -0x8000_0000 || value > 0x7fff_ffff) {\n throw new RangeError(`${name} must be an i32 integer`)\n }\n return value\n}\n\nfunction requireByte(value: number, name: string): number {\n if (!Number.isInteger(value) || value < 0 || value > 255)\n throw new RangeError(`${name} must be an integer from 0 to 255`)\n return value\n}\n\nfunction unpackInfo(info: NativeImageInfo): ImageInfo {\n const format = ([\"unknown\", \"png\", \"raw-rgba\", \"jpeg\", \"webp\", \"gif\"] as const)[info.format]\n if (!format || format === \"unknown\") throw new Error(`Unknown native image format ${info.format}`)\n return {\n width: info.width,\n height: info.height,\n sourceWidth: info.sourceWidth,\n sourceHeight: info.sourceHeight,\n format,\n colorStatus: info.colorStatus === 1 ? \"explicit-srgb\" : \"assumed-srgb\",\n orientation: info.orientation,\n hasAlpha: info.hasAlpha !== 0,\n }\n}\n\nfunction encodedBytes(data: Uint8Array | ArrayBuffer): Uint8Array {\n if (data instanceof Uint8Array) return data\n if (data instanceof ArrayBuffer) return new Uint8Array(data)\n throw new TypeError(\"image data must be a Uint8Array or ArrayBuffer\")\n}\n\nasync function readResponseBytes(response: Response, signal?: AbortSignal): Promise<Uint8Array> {\n const contentLength = response.headers.get(\"content-length\")\n if (contentLength !== null) {\n const declaredLength = Number(contentLength)\n if (Number.isFinite(declaredLength) && declaredLength > MAX_ENCODED_BYTES) {\n void response.body?.cancel().catch(() => {})\n throw imageError(6)\n }\n }\n\n if (!response.body) return new Uint8Array()\n const reader = response.body.getReader()\n const abort = () => void reader.cancel(signal?.reason).catch(() => {})\n signal?.addEventListener(\"abort\", abort, { once: true })\n let data = new Uint8Array()\n let total = 0\n try {\n while (true) {\n signal?.throwIfAborted()\n const { done, value } = await reader.read()\n if (done) break\n if (value.byteLength > MAX_ENCODED_BYTES - total) {\n throw imageError(6)\n }\n if (value.byteLength === 0) continue\n const required = total + value.byteLength\n if (required > data.byteLength) {\n const capacity = Math.min(MAX_ENCODED_BYTES, Math.max(required, data.byteLength * 2))\n const grown = new Uint8Array(capacity)\n grown.set(data.subarray(0, total))\n data = grown\n }\n data.set(value, total)\n total = required\n }\n } catch (error) {\n void reader.cancel().catch(() => {})\n throw error\n } finally {\n signal?.removeEventListener(\"abort\", abort)\n reader.releaseLock()\n }\n\n return data.byteLength === total ? data : data.slice(0, total)\n}\n\nasync function readFileBytes(path: string | URL, signal?: AbortSignal): Promise<Uint8Array> {\n signal?.throwIfAborted()\n if ((await stat(path)).size > MAX_ENCODED_BYTES) throw imageError(6)\n\n const file = await open(path, \"r\")\n const chunks: Uint8Array[] = []\n let total = 0\n try {\n while (true) {\n signal?.throwIfAborted()\n const chunk = new Uint8Array(Math.min(64 * 1024, MAX_ENCODED_BYTES - total + 1))\n const { bytesRead } = await file.read(chunk, 0, chunk.byteLength, null)\n if (bytesRead === 0) break\n total += bytesRead\n if (total > MAX_ENCODED_BYTES) throw imageError(6)\n chunks.push(chunk.subarray(0, bytesRead))\n }\n } finally {\n await file.close()\n }\n\n const data = new Uint8Array(total)\n let offset = 0\n for (const chunk of chunks) {\n data.set(chunk, offset)\n offset += chunk.byteLength\n }\n return data\n}\n\nasync function loadResponseBytes(response: Response, source: string, signal?: AbortSignal): Promise<Uint8Array> {\n try {\n signal?.throwIfAborted()\n } catch (error) {\n void response.body?.cancel().catch(() => {})\n throw error\n }\n if (!response.ok) {\n void response.body?.cancel().catch(() => {})\n throw new ImageLoadError(\"http-status\", source, `Failed to fetch image: HTTP ${response.status}`, {\n status: response.status,\n })\n }\n try {\n const data = await readResponseBytes(response, signal)\n signal?.throwIfAborted()\n return data\n } catch (error) {\n if (signal?.aborted) throw signal.reason\n if (error instanceof ImageError) throw error\n throw new ImageLoadError(\"network\", source, `Failed to read image response: ${source}`, { cause: error })\n }\n}\n\nexport function imageInfo(data: Uint8Array | ArrayBuffer): ImageInfo {\n const bytes = encodedBytes(data)\n if (bytes.byteLength === 0) throw new TypeError(\"image data must not be empty\")\n const result = resolveRenderLib().imageInfo(bytes)\n checkStatus(result.status)\n return unpackInfo(result.info)\n}\n\nexport class NativeImage {\n private readonly lib: RenderLib\n private handle: ImageHandle | null\n private imageInfo: ImageInfo\n\n private constructor(lib: RenderLib, handle: ImageHandle, info: ImageInfo) {\n this.lib = lib\n this.handle = handle\n this.imageInfo = info\n }\n\n public static decode(data: Uint8Array | ArrayBuffer): NativeImage {\n const bytes = encodedBytes(data)\n if (bytes.byteLength === 0) throw new TypeError(\"image data must not be empty\")\n const lib = resolveRenderLib()\n const result = lib.imageDecode(bytes)\n checkStatus(result.status)\n if (!result.handle) throw imageError(10)\n return NativeImage.fromHandle(lib, result.handle)\n }\n\n public static async load(source: ImageSource, options: ImageLoadOptions = {}): Promise<NativeImage> {\n if (source instanceof Response) {\n return NativeImage.decode(await loadResponseBytes(source, source.url || \"Response\", options.signal))\n }\n options.signal?.throwIfAborted()\n if (source instanceof Uint8Array || source instanceof ArrayBuffer) return NativeImage.decode(source)\n if (source instanceof Blob) {\n if (source.size > MAX_ENCODED_BYTES) throw imageError(6)\n return NativeImage.decode(await loadResponseBytes(new Response(source), \"Blob\", options.signal))\n }\n\n const url =\n source instanceof URL\n ? source\n : (/^(?:https?|file|blob|data):/i.test(source) || /^[a-z][a-z0-9+.-]*:\\/\\//i.test(source)) &&\n !/^[a-z]:[\\\\/]/i.test(source)\n ? new URL(source)\n : null\n if (!url || url.protocol === \"file:\") {\n const path = url ?? source\n let data: Uint8Array\n try {\n data = await readFileBytes(path, options.signal)\n } catch (error) {\n if (options.signal?.aborted) throw options.signal.reason\n if (error instanceof ImageError) throw error\n throw new ImageLoadError(\"file-read\", String(source), `Failed to read image: ${String(source)}`, {\n cause: error,\n })\n }\n options.signal?.throwIfAborted()\n return NativeImage.decode(data)\n }\n\n if (url.protocol !== \"http:\" && url.protocol !== \"https:\" && url.protocol !== \"blob:\" && url.protocol !== \"data:\") {\n throw new ImageLoadError(\"unsupported-url-scheme\", url.href, `Unsupported image URL scheme: ${url.protocol}`)\n }\n\n let response: Response\n try {\n response = await (options.fetch ?? globalThis.fetch)(url, { signal: options.signal })\n } catch (error) {\n if (options.signal?.aborted) throw options.signal.reason\n throw new ImageLoadError(\"network\", url.href, `Failed to fetch image: ${url.href}`, { cause: error })\n }\n return NativeImage.decode(await loadResponseBytes(response, url.href, options.signal))\n }\n\n public static fromRgba(pixels: Uint8Array, width: number, height: number, stride = width * 4): NativeImage {\n if (!(pixels instanceof Uint8Array)) throw new TypeError(\"pixels must be a Uint8Array\")\n requireU32(width, \"width\")\n requireU32(height, \"height\")\n requireU32(stride, \"stride\")\n const lib = resolveRenderLib()\n const result = lib.imageCreateFromRgba(pixels, width, height, stride)\n checkStatus(result.status)\n if (!result.handle) throw imageError(10)\n return NativeImage.fromHandle(lib, result.handle)\n }\n\n private static fromHandle(lib: RenderLib, handle: ImageHandle): NativeImage {\n const result = lib.imageGetInfo(handle)\n if (result.status !== 0) {\n lib.imageDestroy(handle)\n throw imageError(result.status)\n }\n return new NativeImage(lib, handle, unpackInfo(result.info))\n }\n\n private guard(): ImageHandle {\n if (!this.handle) throw new Error(\"NativeImage is disposed\")\n return this.handle\n }\n\n public get ptr(): ImageHandle {\n return this.guard()\n }\n\n private wrap(result: { status: number; handle: ImageHandle | null }): NativeImage {\n checkStatus(result.status)\n if (!result.handle) throw imageError(10)\n return NativeImage.fromHandle(this.lib, result.handle)\n }\n\n public info(): ImageInfo {\n this.guard()\n return { ...this.imageInfo }\n }\n\n public get width(): number {\n this.guard()\n return this.imageInfo.width\n }\n\n public get height(): number {\n this.guard()\n return this.imageInfo.height\n }\n\n public clone(): NativeImage {\n return this.wrap(this.lib.imageClone(this.guard()))\n }\n\n public retain(): NativeImage {\n return this.wrap(this.lib.imageRetain(this.guard()))\n }\n\n public resize(options: ResizeOptions): NativeImage {\n if (!options || (options.width === undefined && options.height === undefined)) {\n throw new TypeError(\"resize requires width, height, or both\")\n }\n let width = options.width\n let height = options.height\n if (width !== undefined) requireU32(width, \"width\")\n if (height !== undefined) requireU32(height, \"height\")\n if (width === undefined) width = Math.max(1, Math.round((this.width * height!) / this.height))\n if (height === undefined) height = Math.max(1, Math.round((this.height * width) / this.width))\n requireU32(width, \"width\")\n requireU32(height, \"height\")\n const filter = requireMappedOption(FILTER_IDS, options.kernel ?? \"area\", \"resize kernel\")\n return this.wrap(this.lib.imageResize(this.guard(), width, height, filter))\n }\n\n public extract(options: ExtractOptions): NativeImage {\n return this.wrap(\n this.lib.imageExtract(\n this.guard(),\n requireU32(options.left, \"left\", true),\n requireU32(options.top, \"top\", true),\n requireU32(options.width, \"width\"),\n requireU32(options.height, \"height\"),\n ),\n )\n }\n\n public extend(options: ExtendOptions = {}): NativeImage {\n const background = options.background ?? [0, 0, 0, 0]\n if (background.length !== 4) throw new TypeError(\"background must contain four RGBA channels\")\n const color = Uint8Array.from(background.map((value, index) => requireByte(value, `background[${index}]`)))\n return this.wrap(\n this.lib.imageExtend(\n this.guard(),\n requireU32(options.top ?? 0, \"top\", true),\n requireU32(options.right ?? 0, \"right\", true),\n requireU32(options.bottom ?? 0, \"bottom\", true),\n requireU32(options.left ?? 0, \"left\", true),\n color,\n ),\n )\n }\n\n public rotate(angle: 90 | 180 | 270): NativeImage {\n const operation = angle === 90 ? 0 : angle === 180 ? 1 : angle === 270 ? 2 : -1\n if (operation < 0) throw new RangeError(\"angle must be 90, 180, or 270\")\n return this.wrap(this.lib.imageTransform(this.guard(), operation))\n }\n\n public flip(): NativeImage {\n return this.wrap(this.lib.imageTransform(this.guard(), 3))\n }\n\n public flop(): NativeImage {\n return this.wrap(this.lib.imageTransform(this.guard(), 4))\n }\n\n public composite(overlay: NativeImage, options: CompositeOptions = {}): NativeImage {\n if (!(overlay instanceof NativeImage)) throw new TypeError(\"overlay must be a NativeImage\")\n const opacity = options.opacity ?? 1\n if (!Number.isFinite(opacity) || opacity < 0 || opacity > 1) throw new RangeError(\"opacity must be between 0 and 1\")\n return this.wrap(\n this.lib.imageComposite(\n this.guard(),\n overlay.guard(),\n requireI32(options.left ?? 0, \"left\"),\n requireI32(options.top ?? 0, \"top\"),\n requireMappedOption(BLEND_IDS, options.blend ?? \"source-over\", \"blend mode\"),\n Math.round(opacity * 255),\n ),\n )\n }\n\n public ensureEncodedPng(): void {\n checkStatus(this.lib.imageEnsureEncodedPng(this.guard()))\n }\n\n public raw(format: PixelFormat = \"rgba8\"): RawImage {\n const stride = this.width * 4\n const data = new Uint8Array(stride * this.height)\n checkStatus(\n this.lib.imageCopyPixels(\n this.guard(),\n data,\n stride,\n requireMappedOption(PIXEL_FORMAT_BGRA, format, \"pixel format\"),\n ),\n )\n return { data, width: this.width, height: this.height, stride, format, colorSpace: \"srgb\", alpha: \"straight\" }\n }\n\n public takeRaw(): OwnedRawImage {\n const handle = this.guard()\n const materializeStatus = this.lib.imageMaterialize(handle)\n if (materializeStatus === INVALID_ARGUMENT_STATUS) {\n throw new Error(\"Cannot transfer image pixels while native buffers retain the image\")\n }\n checkStatus(materializeStatus)\n const pointer = this.lib.imageGetPixelsPtr(handle)\n if (!pointer) throw new Error(\"Cannot transfer image pixels while native buffers retain the image\")\n const width = this.imageInfo.width\n const height = this.imageInfo.height\n const stride = width * 4\n const data = new Uint8Array(toArrayBuffer(pointer, 0, stride * height))\n const raw = new OwnedRawImageImpl(data, width, height, stride, this.lib, handle)\n this.handle = null\n return raw\n }\n\n public copyTo(destination: Uint8Array, options: { stride?: number; format?: PixelFormat } = {}): void {\n if (!(destination instanceof Uint8Array)) throw new TypeError(\"destination must be a Uint8Array\")\n const stride = options.stride ?? this.width * 4\n requireU32(stride, \"stride\")\n const bgra = requireMappedOption(PIXEL_FORMAT_BGRA, options.format ?? \"rgba8\", \"pixel format\")\n checkStatus(this.lib.imageCopyPixels(this.guard(), destination, stride, bgra))\n }\n\n public dispose(): void {\n if (!this.handle) return\n this.lib.imageDestroy(this.handle)\n this.handle = null\n }\n}\n",
|
|
49
|
+
"import { open, stat } from \"node:fs/promises\"\n\nimport { toArrayBuffer } from \"./platform/ffi.js\"\nimport { resolveRenderLib, type ImageHandle, type RenderLib } from \"./zig.js\"\nimport type { NativeImageInfo } from \"./zig-structs.js\"\n\nexport type ImageFormat = \"png\" | \"raw-rgba\" | \"jpeg\" | \"webp\" | \"gif\"\nexport type ImageColorStatus = \"assumed-srgb\" | \"explicit-srgb\"\nexport type ResizeKernel = \"default\" | \"area\" | \"triangle\" | \"cubic-bspline\" | \"catmull-rom\" | \"mitchell\" | \"nearest\"\nexport type BlendMode = \"source-over\" | \"source\" | \"destination-over\"\nexport type PixelFormat = \"rgba8\" | \"bgra8\"\nexport type ImageSource = string | URL | Uint8Array | ArrayBuffer | Blob | Response\n\nexport type ImageLoadErrorCode = \"file-read\" | \"network\" | \"http-status\" | \"unsupported-url-scheme\"\n\nexport class ImageLoadError extends Error {\n public readonly code: ImageLoadErrorCode\n public readonly source: string\n public readonly status?: number\n\n constructor(\n code: ImageLoadErrorCode,\n source: string,\n message: string,\n options?: { cause?: unknown; status?: number },\n ) {\n super(message, { cause: options?.cause })\n this.name = \"ImageLoadError\"\n this.code = code\n this.source = source\n this.status = options?.status\n }\n}\n\nexport interface ImageLoadOptions {\n signal?: AbortSignal\n fetch?: (input: URL, init?: RequestInit) => Promise<Response>\n}\n\nexport interface ImageInfo {\n width: number\n height: number\n sourceWidth: number\n sourceHeight: number\n format: ImageFormat\n colorStatus: ImageColorStatus\n orientation: number\n hasAlpha: boolean\n}\n\nexport interface ResizeOptions {\n width?: number\n height?: number\n kernel?: ResizeKernel\n}\n\nexport interface ExtractOptions {\n left: number\n top: number\n width: number\n height: number\n}\n\nexport interface ExtendOptions {\n top?: number\n right?: number\n bottom?: number\n left?: number\n background?: readonly [number, number, number, number]\n}\n\nexport interface CompositeOptions {\n left?: number\n top?: number\n blend?: BlendMode\n opacity?: number\n}\n\nexport interface RawImage {\n data: Uint8Array\n width: number\n height: number\n stride: number\n format: PixelFormat\n colorSpace: \"srgb\"\n alpha: \"straight\"\n}\n\nexport interface PixelImportOptions {\n stride?: number\n format?: PixelFormat\n alpha?: \"straight\" | \"opaque\"\n colorSpace?: \"srgb\"\n}\n\nexport interface OwnedRawImage extends RawImage {\n dispose(): void\n}\n\nclass OwnedRawImageImpl implements OwnedRawImage {\n private handle: ImageHandle | null\n\n public readonly format = \"rgba8\"\n public readonly colorSpace = \"srgb\"\n public readonly alpha = \"straight\"\n\n constructor(\n public readonly data: Uint8Array,\n public readonly width: number,\n public readonly height: number,\n public readonly stride: number,\n private readonly lib: RenderLib,\n handle: ImageHandle,\n ) {\n this.handle = handle\n }\n\n public dispose(): void {\n if (!this.handle) return\n this.lib.imageDestroy(this.handle)\n this.handle = null\n }\n}\n\nconst STATUS_MESSAGES = [\n \"ok\",\n \"invalid image handle\",\n \"unsupported image format\",\n \"unsupported image color space\",\n \"malformed image data\",\n \"image dimensions exceed limits\",\n \"image memory limit exceeded\",\n \"invalid image argument\",\n \"out of memory\",\n \"image output buffer is too small\",\n \"internal image error\",\n \"unsupported image feature\",\n \"image is retained\",\n] as const\n\nexport type ImageErrorCode =\n | \"invalid-handle\"\n | \"unsupported-format\"\n | \"unsupported-color-space\"\n | \"malformed-data\"\n | \"dimension-limit\"\n | \"memory-limit\"\n | \"invalid-argument\"\n | \"out-of-memory\"\n | \"output-too-small\"\n | \"internal-error\"\n | \"unsupported-feature\"\n | \"busy\"\n\nconst STATUS_CODES: readonly ImageErrorCode[] = [\n \"internal-error\",\n \"invalid-handle\",\n \"unsupported-format\",\n \"unsupported-color-space\",\n \"malformed-data\",\n \"dimension-limit\",\n \"memory-limit\",\n \"invalid-argument\",\n \"out-of-memory\",\n \"output-too-small\",\n \"internal-error\",\n \"unsupported-feature\",\n \"busy\",\n]\nconst INVALID_ARGUMENT_STATUS = 7\nconst BUSY_STATUS = 12\n\nexport class ImageError extends Error {\n public readonly code: ImageErrorCode\n public readonly status: number\n\n constructor(status: number) {\n super(`Native image operation failed: ${STATUS_MESSAGES[status] ?? `unknown status ${status}`}`)\n this.name = \"ImageError\"\n this.status = status\n this.code = STATUS_CODES[status] ?? \"internal-error\"\n }\n}\n\nconst FILTER_IDS: Record<ResizeKernel, number> = {\n default: 0,\n area: 1,\n triangle: 2,\n \"cubic-bspline\": 3,\n \"catmull-rom\": 4,\n mitchell: 5,\n nearest: 6,\n}\n\nconst BLEND_IDS: Record<BlendMode, number> = {\n \"source-over\": 0,\n source: 1,\n \"destination-over\": 2,\n}\n\nconst PIXEL_FORMAT_BGRA: Record<PixelFormat, boolean> = {\n rgba8: false,\n bgra8: true,\n}\n\nconst PIXEL_ALPHA_IDS = { straight: 0, opaque: 1 } as const\n\nconst MAX_ENCODED_BYTES = 64 * 1024 * 1024\n\nfunction imageError(status: number): Error {\n return new ImageError(status)\n}\n\nfunction checkStatus(status: number): void {\n if (status !== 0) throw imageError(status)\n}\n\nfunction requireMappedOption<T extends string, V>(mapping: Record<T, V>, value: T, name: string): V {\n if (!Object.prototype.hasOwnProperty.call(mapping, value))\n throw new TypeError(`Unsupported ${name}: ${String(value)}`)\n return mapping[value]\n}\n\nfunction requireU32(value: number, name: string, allowZero = false): number {\n if (!Number.isSafeInteger(value) || value < (allowZero ? 0 : 1) || value > 0xffff_ffff) {\n throw new RangeError(`${name} must be ${allowZero ? \"a non-negative\" : \"a positive\"} u32 integer`)\n }\n return value\n}\n\nfunction pixelImportOptions(width: number, options: PixelImportOptions) {\n const stride = requireU32(options.stride ?? width * 4, \"stride\")\n const bgra = requireMappedOption(PIXEL_FORMAT_BGRA, options.format ?? \"rgba8\", \"pixel format\")\n const alpha = requireMappedOption(PIXEL_ALPHA_IDS, options.alpha ?? \"straight\", \"pixel alpha\")\n if (options.colorSpace !== undefined && options.colorSpace !== \"srgb\") {\n throw new TypeError(`Unsupported pixel color space: ${String(options.colorSpace)}`)\n }\n return { stride, format: Number(bgra), alpha }\n}\n\nfunction requireI32(value: number, name: string): number {\n if (!Number.isSafeInteger(value) || value < -0x8000_0000 || value > 0x7fff_ffff) {\n throw new RangeError(`${name} must be an i32 integer`)\n }\n return value\n}\n\nfunction requireByte(value: number, name: string): number {\n if (!Number.isInteger(value) || value < 0 || value > 255)\n throw new RangeError(`${name} must be an integer from 0 to 255`)\n return value\n}\n\nfunction unpackInfo(info: NativeImageInfo): ImageInfo {\n const format = ([\"unknown\", \"png\", \"raw-rgba\", \"jpeg\", \"webp\", \"gif\"] as const)[info.format]\n if (!format || format === \"unknown\") throw new Error(`Unknown native image format ${info.format}`)\n return {\n width: info.width,\n height: info.height,\n sourceWidth: info.sourceWidth,\n sourceHeight: info.sourceHeight,\n format,\n colorStatus: info.colorStatus === 1 ? \"explicit-srgb\" : \"assumed-srgb\",\n orientation: info.orientation,\n hasAlpha: info.hasAlpha !== 0,\n }\n}\n\nfunction encodedBytes(data: Uint8Array | ArrayBuffer): Uint8Array {\n if (data instanceof Uint8Array) return data\n if (data instanceof ArrayBuffer) return new Uint8Array(data)\n throw new TypeError(\"image data must be a Uint8Array or ArrayBuffer\")\n}\n\nasync function readResponseBytes(response: Response, signal?: AbortSignal): Promise<Uint8Array> {\n const contentLength = response.headers.get(\"content-length\")\n if (contentLength !== null) {\n const declaredLength = Number(contentLength)\n if (Number.isFinite(declaredLength) && declaredLength > MAX_ENCODED_BYTES) {\n void response.body?.cancel().catch(() => {})\n throw imageError(6)\n }\n }\n\n if (!response.body) return new Uint8Array()\n const reader = response.body.getReader()\n const abort = () => void reader.cancel(signal?.reason).catch(() => {})\n signal?.addEventListener(\"abort\", abort, { once: true })\n let data = new Uint8Array()\n let total = 0\n try {\n while (true) {\n signal?.throwIfAborted()\n const { done, value } = await reader.read()\n if (done) break\n if (value.byteLength > MAX_ENCODED_BYTES - total) {\n throw imageError(6)\n }\n if (value.byteLength === 0) continue\n const required = total + value.byteLength\n if (required > data.byteLength) {\n const capacity = Math.min(MAX_ENCODED_BYTES, Math.max(required, data.byteLength * 2))\n const grown = new Uint8Array(capacity)\n grown.set(data.subarray(0, total))\n data = grown\n }\n data.set(value, total)\n total = required\n }\n } catch (error) {\n void reader.cancel().catch(() => {})\n throw error\n } finally {\n signal?.removeEventListener(\"abort\", abort)\n reader.releaseLock()\n }\n\n return data.byteLength === total ? data : data.slice(0, total)\n}\n\nasync function readFileBytes(path: string | URL, signal?: AbortSignal): Promise<Uint8Array> {\n signal?.throwIfAborted()\n if ((await stat(path)).size > MAX_ENCODED_BYTES) throw imageError(6)\n\n const file = await open(path, \"r\")\n const chunks: Uint8Array[] = []\n let total = 0\n try {\n while (true) {\n signal?.throwIfAborted()\n const chunk = new Uint8Array(Math.min(64 * 1024, MAX_ENCODED_BYTES - total + 1))\n const { bytesRead } = await file.read(chunk, 0, chunk.byteLength, null)\n if (bytesRead === 0) break\n total += bytesRead\n if (total > MAX_ENCODED_BYTES) throw imageError(6)\n chunks.push(chunk.subarray(0, bytesRead))\n }\n } finally {\n await file.close()\n }\n\n const data = new Uint8Array(total)\n let offset = 0\n for (const chunk of chunks) {\n data.set(chunk, offset)\n offset += chunk.byteLength\n }\n return data\n}\n\nasync function loadResponseBytes(response: Response, source: string, signal?: AbortSignal): Promise<Uint8Array> {\n try {\n signal?.throwIfAborted()\n } catch (error) {\n void response.body?.cancel().catch(() => {})\n throw error\n }\n if (!response.ok) {\n void response.body?.cancel().catch(() => {})\n throw new ImageLoadError(\"http-status\", source, `Failed to fetch image: HTTP ${response.status}`, {\n status: response.status,\n })\n }\n try {\n const data = await readResponseBytes(response, signal)\n signal?.throwIfAborted()\n return data\n } catch (error) {\n if (signal?.aborted) throw signal.reason\n if (error instanceof ImageError) throw error\n throw new ImageLoadError(\"network\", source, `Failed to read image response: ${source}`, { cause: error })\n }\n}\n\nexport function imageInfo(data: Uint8Array | ArrayBuffer): ImageInfo {\n const bytes = encodedBytes(data)\n if (bytes.byteLength === 0) throw new TypeError(\"image data must not be empty\")\n const result = resolveRenderLib().imageInfo(bytes)\n checkStatus(result.status)\n return unpackInfo(result.info)\n}\n\nexport class NativeImage {\n private readonly lib: RenderLib\n private handle: ImageHandle | null\n private imageInfo: ImageInfo\n\n private constructor(lib: RenderLib, handle: ImageHandle, info: ImageInfo) {\n this.lib = lib\n this.handle = handle\n this.imageInfo = info\n }\n\n public static decode(data: Uint8Array | ArrayBuffer): NativeImage {\n const bytes = encodedBytes(data)\n if (bytes.byteLength === 0) throw new TypeError(\"image data must not be empty\")\n const lib = resolveRenderLib()\n const result = lib.imageDecode(bytes)\n checkStatus(result.status)\n if (!result.handle) throw imageError(10)\n return NativeImage.fromHandle(lib, result.handle)\n }\n\n public static async load(source: ImageSource, options: ImageLoadOptions = {}): Promise<NativeImage> {\n if (source instanceof Response) {\n return NativeImage.decode(await loadResponseBytes(source, source.url || \"Response\", options.signal))\n }\n options.signal?.throwIfAborted()\n if (source instanceof Uint8Array || source instanceof ArrayBuffer) return NativeImage.decode(source)\n if (source instanceof Blob) {\n if (source.size > MAX_ENCODED_BYTES) throw imageError(6)\n return NativeImage.decode(await loadResponseBytes(new Response(source), \"Blob\", options.signal))\n }\n\n const url =\n source instanceof URL\n ? source\n : (/^(?:https?|file|blob|data):/i.test(source) || /^[a-z][a-z0-9+.-]*:\\/\\//i.test(source)) &&\n !/^[a-z]:[\\\\/]/i.test(source)\n ? new URL(source)\n : null\n if (!url || url.protocol === \"file:\") {\n const path = url ?? source\n let data: Uint8Array\n try {\n data = await readFileBytes(path, options.signal)\n } catch (error) {\n if (options.signal?.aborted) throw options.signal.reason\n if (error instanceof ImageError) throw error\n throw new ImageLoadError(\"file-read\", String(source), `Failed to read image: ${String(source)}`, {\n cause: error,\n })\n }\n options.signal?.throwIfAborted()\n return NativeImage.decode(data)\n }\n\n if (url.protocol !== \"http:\" && url.protocol !== \"https:\" && url.protocol !== \"blob:\" && url.protocol !== \"data:\") {\n throw new ImageLoadError(\"unsupported-url-scheme\", url.href, `Unsupported image URL scheme: ${url.protocol}`)\n }\n\n let response: Response\n try {\n response = await (options.fetch ?? globalThis.fetch)(url, { signal: options.signal })\n } catch (error) {\n if (options.signal?.aborted) throw options.signal.reason\n throw new ImageLoadError(\"network\", url.href, `Failed to fetch image: ${url.href}`, { cause: error })\n }\n return NativeImage.decode(await loadResponseBytes(response, url.href, options.signal))\n }\n\n public static fromRgba(pixels: Uint8Array, width: number, height: number, stride = width * 4): NativeImage {\n if (!(pixels instanceof Uint8Array)) throw new TypeError(\"pixels must be a Uint8Array\")\n requireU32(width, \"width\")\n requireU32(height, \"height\")\n requireU32(stride, \"stride\")\n const lib = resolveRenderLib()\n const result = lib.imageCreateFromRgba(pixels, width, height, stride)\n checkStatus(result.status)\n if (!result.handle) throw imageError(10)\n return NativeImage.fromHandle(lib, result.handle)\n }\n\n public static fromPixels(\n pixels: Uint8Array,\n width: number,\n height: number,\n options: PixelImportOptions = {},\n ): NativeImage {\n if (!(pixels instanceof Uint8Array)) throw new TypeError(\"pixels must be a Uint8Array\")\n requireU32(width, \"width\")\n requireU32(height, \"height\")\n const { stride, format, alpha } = pixelImportOptions(width, options)\n const lib = resolveRenderLib()\n const result = lib.imageCreateFromPixels(pixels, width, height, stride, format, alpha)\n checkStatus(result.status)\n if (!result.handle) throw imageError(10)\n return NativeImage.fromHandle(lib, result.handle)\n }\n\n private static fromHandle(lib: RenderLib, handle: ImageHandle): NativeImage {\n const result = lib.imageGetInfo(handle)\n if (result.status !== 0) {\n lib.imageDestroy(handle)\n throw imageError(result.status)\n }\n return new NativeImage(lib, handle, unpackInfo(result.info))\n }\n\n private guard(): ImageHandle {\n if (!this.handle) throw new Error(\"NativeImage is disposed\")\n return this.handle\n }\n\n public get ptr(): ImageHandle {\n return this.guard()\n }\n\n private wrap(result: { status: number; handle: ImageHandle | null }): NativeImage {\n checkStatus(result.status)\n if (!result.handle) throw imageError(10)\n return NativeImage.fromHandle(this.lib, result.handle)\n }\n\n public info(): ImageInfo {\n this.guard()\n return { ...this.imageInfo }\n }\n\n public get width(): number {\n this.guard()\n return this.imageInfo.width\n }\n\n public get height(): number {\n this.guard()\n return this.imageInfo.height\n }\n\n public clone(): NativeImage {\n return this.wrap(this.lib.imageClone(this.guard()))\n }\n\n public retain(): NativeImage {\n return this.wrap(this.lib.imageRetain(this.guard()))\n }\n\n public resize(options: ResizeOptions): NativeImage {\n if (!options || (options.width === undefined && options.height === undefined)) {\n throw new TypeError(\"resize requires width, height, or both\")\n }\n let width = options.width\n let height = options.height\n if (width !== undefined) requireU32(width, \"width\")\n if (height !== undefined) requireU32(height, \"height\")\n if (width === undefined) width = Math.max(1, Math.round((this.width * height!) / this.height))\n if (height === undefined) height = Math.max(1, Math.round((this.height * width) / this.width))\n requireU32(width, \"width\")\n requireU32(height, \"height\")\n const filter = requireMappedOption(FILTER_IDS, options.kernel ?? \"area\", \"resize kernel\")\n return this.wrap(this.lib.imageResize(this.guard(), width, height, filter))\n }\n\n public extract(options: ExtractOptions): NativeImage {\n return this.wrap(\n this.lib.imageExtract(\n this.guard(),\n requireU32(options.left, \"left\", true),\n requireU32(options.top, \"top\", true),\n requireU32(options.width, \"width\"),\n requireU32(options.height, \"height\"),\n ),\n )\n }\n\n public extend(options: ExtendOptions = {}): NativeImage {\n const background = options.background ?? [0, 0, 0, 0]\n if (background.length !== 4) throw new TypeError(\"background must contain four RGBA channels\")\n const color = Uint8Array.from(background.map((value, index) => requireByte(value, `background[${index}]`)))\n return this.wrap(\n this.lib.imageExtend(\n this.guard(),\n requireU32(options.top ?? 0, \"top\", true),\n requireU32(options.right ?? 0, \"right\", true),\n requireU32(options.bottom ?? 0, \"bottom\", true),\n requireU32(options.left ?? 0, \"left\", true),\n color,\n ),\n )\n }\n\n public rotate(angle: 90 | 180 | 270): NativeImage {\n const operation = angle === 90 ? 0 : angle === 180 ? 1 : angle === 270 ? 2 : -1\n if (operation < 0) throw new RangeError(\"angle must be 90, 180, or 270\")\n return this.wrap(this.lib.imageTransform(this.guard(), operation))\n }\n\n public flip(): NativeImage {\n return this.wrap(this.lib.imageTransform(this.guard(), 3))\n }\n\n public flop(): NativeImage {\n return this.wrap(this.lib.imageTransform(this.guard(), 4))\n }\n\n public composite(overlay: NativeImage, options: CompositeOptions = {}): NativeImage {\n if (!(overlay instanceof NativeImage)) throw new TypeError(\"overlay must be a NativeImage\")\n const opacity = options.opacity ?? 1\n if (!Number.isFinite(opacity) || opacity < 0 || opacity > 1) throw new RangeError(\"opacity must be between 0 and 1\")\n return this.wrap(\n this.lib.imageComposite(\n this.guard(),\n overlay.guard(),\n requireI32(options.left ?? 0, \"left\"),\n requireI32(options.top ?? 0, \"top\"),\n requireMappedOption(BLEND_IDS, options.blend ?? \"source-over\", \"blend mode\"),\n Math.round(opacity * 255),\n ),\n )\n }\n\n public ensureEncodedPng(): void {\n checkStatus(this.lib.imageEnsureEncodedPng(this.guard()))\n }\n\n public raw(format: PixelFormat = \"rgba8\"): RawImage {\n const stride = this.width * 4\n const data = new Uint8Array(stride * this.height)\n checkStatus(\n this.lib.imageCopyPixels(\n this.guard(),\n data,\n stride,\n requireMappedOption(PIXEL_FORMAT_BGRA, format, \"pixel format\"),\n ),\n )\n return { data, width: this.width, height: this.height, stride, format, colorSpace: \"srgb\", alpha: \"straight\" }\n }\n\n public takeRaw(): OwnedRawImage {\n const handle = this.guard()\n const materializeStatus = this.lib.imageMaterialize(handle)\n if (materializeStatus === INVALID_ARGUMENT_STATUS) {\n throw new Error(\"Cannot transfer image pixels while native buffers retain the image\")\n }\n checkStatus(materializeStatus)\n const pointer = this.lib.imageGetPixelsPtr(handle)\n if (!pointer) throw new Error(\"Cannot transfer image pixels while native buffers retain the image\")\n const width = this.imageInfo.width\n const height = this.imageInfo.height\n const stride = width * 4\n const data = new Uint8Array(toArrayBuffer(pointer, 0, stride * height))\n const raw = new OwnedRawImageImpl(data, width, height, stride, this.lib, handle)\n this.handle = null\n return raw\n }\n\n public copyTo(destination: Uint8Array, options: { stride?: number; format?: PixelFormat } = {}): void {\n if (!(destination instanceof Uint8Array)) throw new TypeError(\"destination must be a Uint8Array\")\n const stride = options.stride ?? this.width * 4\n requireU32(stride, \"stride\")\n const bgra = requireMappedOption(PIXEL_FORMAT_BGRA, options.format ?? \"rgba8\", \"pixel format\")\n checkStatus(this.lib.imageCopyPixels(this.guard(), destination, stride, bgra))\n }\n\n public dispose(): void {\n if (!this.handle) return\n this.lib.imageDestroy(this.handle)\n this.handle = null\n }\n}\n\nexport interface NativeImagePoolOptions {\n width: number\n height: number\n capacity?: number\n}\n\nexport class NativeImagePool {\n private readonly lib: RenderLib\n private readonly images: NativeImage[] = []\n private disposed = false\n public readonly width: number\n public readonly height: number\n public readonly capacity: number\n\n constructor(options: NativeImagePoolOptions) {\n this.width = requireU32(options.width, \"width\")\n this.height = requireU32(options.height, \"height\")\n this.capacity = requireU32(options.capacity ?? 3, \"capacity\")\n if (this.capacity > 8) throw new RangeError(\"capacity must be between 1 and 8\")\n this.lib = resolveRenderLib()\n }\n\n public publishRgba(pixels: Uint8Array, stride = this.width * 4): NativeImage | null {\n return this.publishPixels(pixels, { stride: requireU32(stride, \"stride\") })\n }\n\n public publishPixels(pixels: Uint8Array, options: PixelImportOptions = {}): NativeImage | null {\n if (this.disposed) throw new Error(\"NativeImagePool is disposed\")\n if (!(pixels instanceof Uint8Array)) throw new TypeError(\"pixels must be a Uint8Array\")\n const { stride, format, alpha } = pixelImportOptions(this.width, options)\n\n for (const image of this.images) {\n const status = this.lib.imageUpdatePixels(image.ptr, pixels, stride, format, alpha)\n if (status === BUSY_STATUS) continue\n checkStatus(status)\n // The private owner is never rendered. A fresh handle prevents stale native\n // cache hits and a fresh wrapper triggers ImageRenderable.source invalidation.\n return image.retain()\n }\n if (this.images.length === this.capacity) return null\n\n const image = NativeImage.fromPixels(pixels, this.width, this.height, options)\n this.images.push(image)\n return image.retain()\n }\n\n public dispose(): void {\n if (this.disposed) return\n this.disposed = true\n for (const image of this.images) image.dispose()\n this.images.length = 0\n }\n}\n",
|
|
50
50
|
"import { type RenderableOptions, Renderable } from \"../Renderable.js\"\nimport { OptimizedBuffer } from \"../buffer.js\"\nimport type { RenderContext } from \"../types.js\"\n\nexport interface FrameBufferOptions extends RenderableOptions<FrameBufferRenderable> {\n width: number\n height: number\n respectAlpha?: boolean\n}\n\nexport class FrameBufferRenderable extends Renderable {\n public frameBuffer: OptimizedBuffer\n protected respectAlpha: boolean\n\n constructor(ctx: RenderContext, options: FrameBufferOptions) {\n super(ctx, options)\n this.respectAlpha = options.respectAlpha || false\n this.frameBuffer = OptimizedBuffer.create(options.width, options.height, this._ctx.widthMethod, {\n respectAlpha: this.respectAlpha,\n id: options.id || `framebufferrenderable-${this.id}`,\n })\n }\n\n protected onResize(width: number, height: number): void {\n if (width <= 0 || height <= 0) {\n throw new Error(`Invalid resize dimensions for FrameBufferRenderable ${this.id}: ${width}x${height}`)\n }\n\n this.frameBuffer.resize(width, height)\n super.onResize(width, height)\n this.requestRender()\n }\n\n protected renderSelf(buffer: OptimizedBuffer): void {\n if (!this.visible || this.isDestroyed) return\n buffer.drawFrameBuffer(this.x, this.y, this.frameBuffer)\n }\n\n protected destroySelf(): void {\n // TODO: framebuffer collides with buffered Renderable, which holds a framebuffer\n // and destroys it if it exists already. Maybe instead of extending FrameBufferRenderable,\n // subclasses can use the buffered option on the base renderable instead,\n // then this would become something that takes in an external framebuffer to bring it into layout.\n this.frameBuffer?.destroy()\n super.destroySelf()\n }\n}\n",
|
|
51
51
|
"import {\n getCharacterPositions,\n measureText,\n renderFontToFrameBuffer,\n type ASCIIFontName,\n type fonts,\n} from \"../lib/ascii.font.js\"\nimport { parseColor, type ColorInput } from \"../lib/RGBA.js\"\nimport {\n ASCIIFontSelectionHelper,\n convertGlobalToLocalSelection,\n Selection,\n type LocalSelectionBounds,\n} from \"../lib/selection.js\"\nimport type { RenderableOptions } from \"../Renderable.js\"\nimport type { RenderContext } from \"../types.js\"\nimport { FrameBufferRenderable, type FrameBufferOptions } from \"./FrameBuffer.js\"\n\nexport interface ASCIIFontOptions extends Omit<RenderableOptions<ASCIIFontRenderable>, \"width\" | \"height\"> {\n text?: string\n font?: ASCIIFontName\n color?: ColorInput | ColorInput[]\n backgroundColor?: ColorInput\n selectionBg?: ColorInput\n selectionFg?: ColorInput\n selectable?: boolean\n}\n\nexport class ASCIIFontRenderable extends FrameBufferRenderable {\n public selectable: boolean = true\n\n protected static readonly _defaultOptions = {\n text: \"\",\n font: \"tiny\",\n color: \"#FFFFFF\",\n backgroundColor: \"transparent\",\n selectionBg: undefined,\n selectionFg: undefined,\n selectable: true,\n } satisfies Partial<ASCIIFontOptions>\n\n protected _text: string\n protected _font: keyof typeof fonts\n protected _color: ColorInput | ColorInput[]\n protected _backgroundColor: ColorInput\n protected _selectionBg: ColorInput | undefined\n protected _selectionFg: ColorInput | undefined\n protected lastLocalSelection: LocalSelectionBounds | null = null\n\n private selectionHelper: ASCIIFontSelectionHelper\n\n constructor(ctx: RenderContext, options: ASCIIFontOptions) {\n const defaultOptions = ASCIIFontRenderable._defaultOptions\n const font = options.font || defaultOptions.font\n const text = options.text || defaultOptions.text\n const measurements = measureText({ text: text, font })\n\n super(ctx, {\n flexShrink: 0,\n ...options,\n width: measurements.width || 1,\n height: measurements.height || 1,\n respectAlpha: true,\n } as FrameBufferOptions)\n\n this._text = text\n this._font = font\n this._color = options.color || defaultOptions.color\n this._backgroundColor = options.backgroundColor || defaultOptions.backgroundColor\n this._selectionBg = options.selectionBg ? parseColor(options.selectionBg) : undefined\n this._selectionFg = options.selectionFg ? parseColor(options.selectionFg) : undefined\n this.selectable = options.selectable ?? true\n\n this.selectionHelper = new ASCIIFontSelectionHelper(\n () => this._text,\n () => this._font,\n )\n\n this.renderFontToBuffer()\n }\n\n get text(): string {\n return this._text\n }\n\n set text(value: string) {\n this._text = value\n this.updateDimensions()\n\n if (this.lastLocalSelection) {\n this.selectionHelper.onLocalSelectionChanged(this.lastLocalSelection, this.width, this.height)\n }\n\n this.renderFontToBuffer()\n this.requestRender()\n }\n\n get font(): keyof typeof fonts {\n return this._font\n }\n\n set font(value: keyof typeof fonts) {\n this._font = value\n this.updateDimensions()\n\n if (this.lastLocalSelection) {\n this.selectionHelper.onLocalSelectionChanged(this.lastLocalSelection, this.width, this.height)\n }\n\n this.renderFontToBuffer()\n this.requestRender()\n }\n\n get color(): ColorInput | ColorInput[] {\n return this._color\n }\n\n set color(value: ColorInput | ColorInput[]) {\n this._color = value\n this.renderFontToBuffer()\n this.requestRender()\n }\n\n get backgroundColor(): ColorInput {\n return this._backgroundColor\n }\n\n set backgroundColor(value: ColorInput) {\n this._backgroundColor = value\n this.renderFontToBuffer()\n this.requestRender()\n }\n\n private updateDimensions(): void {\n const measurements = measureText({ text: this._text, font: this._font })\n this.width = measurements.width\n this.height = measurements.height\n }\n\n shouldStartSelection(x: number, y: number): boolean {\n const localX = x - this.x\n const localY = y - this.y\n return this.selectionHelper.shouldStartSelection(localX, localY, this.width, this.height)\n }\n\n onSelectionChanged(selection: Selection | null): boolean {\n const localSelection = convertGlobalToLocalSelection(selection, this.x, this.y)\n this.lastLocalSelection = localSelection\n const changed = this.selectionHelper.onLocalSelectionChanged(localSelection, this.width, this.height)\n if (changed) {\n this.renderFontToBuffer()\n this.requestRender()\n }\n return this.selectionHelper.hasSelection()\n }\n\n getSelectedText(): string {\n const selection = this.selectionHelper.getSelection()\n if (!selection) return \"\"\n return this._text.slice(selection.start, selection.end)\n }\n\n hasSelection(): boolean {\n return this.selectionHelper.hasSelection()\n }\n\n protected onResize(width: number, height: number): void {\n super.onResize(width, height)\n this.renderFontToBuffer()\n }\n\n private renderFontToBuffer(): void {\n if (this.isDestroyed) return\n this.frameBuffer.clear(parseColor(this._backgroundColor))\n\n renderFontToFrameBuffer(this.frameBuffer, {\n text: this._text,\n x: 0,\n y: 0,\n color: this.color,\n backgroundColor: this._backgroundColor,\n font: this._font,\n })\n\n const selection = this.selectionHelper.getSelection()\n if (selection && (this._selectionBg || this._selectionFg)) {\n this.renderSelectionHighlight(selection)\n }\n }\n\n private renderSelectionHighlight(selection: { start: number; end: number }): void {\n if (!this._selectionBg && !this._selectionFg) return\n\n const selectedText = this._text.slice(selection.start, selection.end)\n if (!selectedText) return\n\n const positions = getCharacterPositions(this._text, this._font)\n const startX = positions[selection.start] || 0\n const endX =\n selection.end < positions.length\n ? positions[selection.end]\n : measureText({ text: this._text, font: this._font }).width\n\n if (this._selectionBg) {\n this.frameBuffer.fillRect(startX, 0, endX - startX, this.height, parseColor(this._selectionBg))\n }\n\n if (this._selectionFg || this._selectionBg) {\n renderFontToFrameBuffer(this.frameBuffer, {\n text: selectedText,\n x: startX,\n y: 0,\n color: this._selectionFg ? this._selectionFg : this._color,\n backgroundColor: this._selectionBg ? this._selectionBg : this._backgroundColor,\n font: this._font,\n })\n }\n }\n}\n",
|
|
52
52
|
"import {\n ASCIIFontRenderable,\n BoxRenderable,\n CodeRenderable,\n InputRenderable,\n ScrollBoxRenderable,\n SelectRenderable,\n TabSelectRenderable,\n TextRenderable,\n VRenderable,\n FrameBufferRenderable,\n type ASCIIFontOptions,\n type BoxOptions,\n type CodeOptions,\n type TextOptions,\n type VRenderableOptions,\n type InputRenderableOptions,\n type ScrollBoxOptions,\n type SelectRenderableOptions,\n type TabSelectRenderableOptions,\n type FrameBufferOptions,\n} from \"..//index.js\"\nimport { TextNodeRenderable, type TextNodeOptions } from \"../TextNode.js\"\nimport { h, type VChild } from \"./vnode.js\"\nimport { TextAttributes } from \"../../types.js\"\nimport type { RGBA } from \"../../lib/RGBA.js\"\n\nexport function Generic(props?: VRenderableOptions, ...children: VChild[]) {\n return h(VRenderable, props || {}, ...children)\n}\n\nexport function Box(props?: BoxOptions, ...children: VChild[]) {\n return h(BoxRenderable, props || {}, ...children)\n}\n\nexport function Text(props?: TextOptions & { content?: any }, ...children: VChild[] | TextNodeRenderable[]) {\n return h(TextRenderable, props || {}, ...(children as VChild[]))\n}\n\nexport function ASCIIFont(props?: ASCIIFontOptions, ...children: VChild[]) {\n return h(ASCIIFontRenderable, props || {}, ...children)\n}\n\nexport function Input(props?: InputRenderableOptions, ...children: VChild[]) {\n return h(InputRenderable, props || {}, ...children)\n}\n\nexport function Select(props?: SelectRenderableOptions, ...children: VChild[]) {\n return h(SelectRenderable, props || {}, ...children)\n}\n\nexport function TabSelect(props?: TabSelectRenderableOptions, ...children: VChild[]) {\n return h(TabSelectRenderable, props || {}, ...children)\n}\n\nexport function FrameBuffer(props: FrameBufferOptions, ...children: VChild[]) {\n return h(FrameBufferRenderable, props, ...children)\n}\n\nexport function Code(props: CodeOptions, ...children: VChild[]) {\n return h(CodeRenderable, props, ...children)\n}\n\nexport function ScrollBox(props?: ScrollBoxOptions, ...children: VChild[]) {\n return h(ScrollBoxRenderable, props || {}, ...children)\n}\n\ninterface StyledTextProps extends Omit<TextNodeOptions, \"attributes\"> {\n attributes?: number\n}\n\nfunction StyledText(props?: StyledTextProps, ...children: (string | TextNodeRenderable)[]): TextNodeRenderable {\n const styledProps = props as StyledTextProps\n const textNodeOptions: TextNodeOptions = {\n ...styledProps,\n attributes: styledProps?.attributes ?? 0,\n }\n\n const textNode = new TextNodeRenderable(textNodeOptions)\n\n for (const child of children) {\n textNode.add(child)\n }\n\n return textNode\n}\n\n// Text styling convenience functions - these create TextNodeRenderable instances that can be nested and stacked\nexport const vstyles = {\n // Basic text styles\n bold: (...children: (string | TextNodeRenderable)[]) => StyledText({ attributes: TextAttributes.BOLD }, ...children),\n italic: (...children: (string | TextNodeRenderable)[]) =>\n StyledText({ attributes: TextAttributes.ITALIC }, ...children),\n underline: (...children: (string | TextNodeRenderable)[]) =>\n StyledText({ attributes: TextAttributes.UNDERLINE }, ...children),\n dim: (...children: (string | TextNodeRenderable)[]) => StyledText({ attributes: TextAttributes.DIM }, ...children),\n blink: (...children: (string | TextNodeRenderable)[]) =>\n StyledText({ attributes: TextAttributes.BLINK }, ...children),\n inverse: (...children: (string | TextNodeRenderable)[]) =>\n StyledText({ attributes: TextAttributes.INVERSE }, ...children),\n hidden: (...children: (string | TextNodeRenderable)[]) =>\n StyledText({ attributes: TextAttributes.HIDDEN }, ...children),\n strikethrough: (...children: (string | TextNodeRenderable)[]) =>\n StyledText({ attributes: TextAttributes.STRIKETHROUGH }, ...children),\n\n // Combined styles\n boldItalic: (...children: (string | TextNodeRenderable)[]) =>\n StyledText({ attributes: TextAttributes.BOLD | TextAttributes.ITALIC }, ...children),\n boldUnderline: (...children: (string | TextNodeRenderable)[]) =>\n StyledText({ attributes: TextAttributes.BOLD | TextAttributes.UNDERLINE }, ...children),\n italicUnderline: (...children: (string | TextNodeRenderable)[]) =>\n StyledText({ attributes: TextAttributes.ITALIC | TextAttributes.UNDERLINE }, ...children),\n boldItalicUnderline: (...children: (string | TextNodeRenderable)[]) =>\n StyledText({ attributes: TextAttributes.BOLD | TextAttributes.ITALIC | TextAttributes.UNDERLINE }, ...children),\n\n // Color helpers\n color: (color: string | RGBA, ...children: (string | TextNodeRenderable)[]) => StyledText({ fg: color }, ...children),\n bgColor: (bgColor: string | RGBA, ...children: (string | TextNodeRenderable)[]) =>\n StyledText({ bg: bgColor }, ...children),\n fg: (color: string | RGBA, ...children: (string | TextNodeRenderable)[]) => StyledText({ fg: color }, ...children),\n bg: (bgColor: string | RGBA, ...children: (string | TextNodeRenderable)[]) =>\n StyledText({ bg: bgColor }, ...children),\n\n // Custom styling function\n styled: (attributes: number = 0, ...children: (string | TextNodeRenderable)[]) =>\n StyledText({ attributes }, ...children),\n}\n",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"function comparePriority(leftGrowth: number, leftCapacity: number, rightGrowth: number, rightCapacity: number): number {\n // Squared cross-products preserve exact ordering while ordinary table widths stay on the number fast path.\n const left = leftGrowth * leftGrowth * rightCapacity\n const right = rightGrowth * rightGrowth * leftCapacity\n\n if (Number.isSafeInteger(left) && Number.isSafeInteger(right)) {\n return left < right ? -1 : left > right ? 1 : 0\n }\n\n const exactLeft = BigInt(leftGrowth) * BigInt(leftGrowth) * BigInt(rightCapacity)\n const exactRight = BigInt(rightGrowth) * BigInt(rightGrowth) * BigInt(leftCapacity)\n return exactLeft < exactRight ? -1 : exactLeft > exactRight ? 1 : 0\n}\n\nexport function allocateProportionalColumnWidths(widths: number[], targetWidth: number, minWidth: number): number[] {\n const baseWidths = widths.map((width) => Math.max(minWidth, Math.floor(width)))\n const totalBaseWidth = baseWidths.reduce((sum, width) => sum + width, 0)\n const capacity = baseWidths.map((width) => width - minWidth)\n const growth = new Array(baseWidths.length).fill(0)\n const available = Math.min(\n Math.max(0, targetWidth - minWidth * baseWidths.length),\n totalBaseWidth - minWidth * baseWidths.length,\n )\n\n if (available === 0) return growth.map(() => minWidth)\n if (available === capacity.reduce((sum, width) => sum + width, 0)) return baseWidths\n\n const weights = capacity.map(Math.sqrt)\n const active = capacity\n .map((width, idx) => ({ idx, width, weight: weights[idx]! }))\n .filter((column) => column.width > 0)\n .sort((a, b) => a.weight - b.weight)\n if (active.length === capacity.length && capacity.every((width) => width === capacity[0])) {\n const sharedGrowth = Math.floor(available / capacity.length)\n const remainder = available % capacity.length\n return growth.map((_, idx) => minWidth + sharedGrowth + (idx < remainder ? 1 : 0))\n }\n let remaining = available\n let totalWeight = active.reduce((sum, column) => sum + column.weight, 0)\n\n // Water-fill the arithmetic priority sequences in bulk, capping short columns first.\n for (const column of active) {\n if (remaining / totalWeight <= column.weight) break\n growth[column.idx] = column.width\n remaining -= column.width\n totalWeight -= column.weight\n }\n\n const level = remaining / totalWeight\n for (const column of active) {\n if (growth[column.idx] === column.width) continue\n growth[column.idx] = Math.min(column.width, Math.floor(level * column.weight))\n }\n\n let allocatedGrowth = growth.reduce((sum, width) => sum + width, 0)\n\n while (allocatedGrowth > available) {\n let worstIdx = -1\n\n for (let idx = 0; idx < baseWidths.length; idx++) {\n if (growth[idx] === 0) continue\n\n const comparison =\n worstIdx === -1 ? 1 : comparePriority(growth[idx]!, capacity[idx]!, growth[worstIdx]!, capacity[worstIdx]!)\n if (comparison > 0 || (comparison === 0 && idx > worstIdx)) {\n worstIdx = idx\n }\n }\n\n if (worstIdx === -1) break\n growth[worstIdx] -= 1\n allocatedGrowth -= 1\n }\n\n // Flooring leaves fewer than one cell per active column to resolve by exact priority.\n while (allocatedGrowth < available) {\n let bestIdx = -1\n\n for (let idx = 0; idx < baseWidths.length; idx++) {\n if (growth[idx] >= capacity[idx]) continue\n\n const comparison =\n bestIdx === -1\n ? -1\n : comparePriority(growth[idx]! + 1, capacity[idx]!, growth[bestIdx]! + 1, capacity[bestIdx]!)\n if (comparison < 0) {\n bestIdx = idx\n }\n }\n\n if (bestIdx === -1) break\n growth[bestIdx] += 1\n allocatedGrowth += 1\n }\n\n return growth.map((width) => width + minWidth)\n}\n",
|
|
63
63
|
"import { MeasureMode } from \"../yoga.js\"\nimport { type RenderableOptions, Renderable } from \"../Renderable.js\"\nimport type { OptimizedBuffer } from \"../buffer.js\"\nimport { type BorderStyle, BorderCharArrays, parseBorderStyle } from \"../lib/border.js\"\nimport { convertGlobalToLocalSelection, type Selection, type LocalSelectionBounds } from \"../lib/selection.js\"\nimport { StyledText, stringToStyledText } from \"../lib/styled-text.js\"\nimport { RGBA, parseColor, type ColorInput } from \"../lib/RGBA.js\"\nimport { SyntaxStyle } from \"../syntax-style.js\"\nimport { type TextChunk, TextBuffer } from \"../text-buffer.js\"\nimport { TextBufferView } from \"../text-buffer-view.js\"\nimport type { RenderContext } from \"../types.js\"\nimport { allocateProportionalColumnWidths } from \"./text-table-width.js\"\n\n// Large sentinel height for text measurement. The Zig measure path currently\n// ignores height, but we pass an effectively unbounded value so if height-aware\n// measuring is introduced later, table sizing remains stable.\nconst MEASURE_HEIGHT = 10_000\n\nexport type TextTableCellContent = TextChunk[] | null | undefined\nexport type TextTableContent = TextTableCellContent[][]\nexport type TextTableColumnWidthMode = \"content\" | \"full\"\nexport type TextTableColumnFitter = \"proportional\" | \"balanced\"\n\ninterface ResolvedTableBorderLayout {\n left: boolean\n right: boolean\n top: boolean\n bottom: boolean\n innerVertical: boolean\n innerHorizontal: boolean\n}\n\ninterface TextTableCellState {\n textBuffer: TextBuffer\n textBufferView: TextBufferView\n syntaxStyle: SyntaxStyle\n}\n\ninterface TextTableLayout {\n columnWidths: number[]\n rowHeights: number[]\n columnOffsets: number[]\n rowOffsets: number[]\n columnOffsetsI32: Int32Array\n rowOffsetsI32: Int32Array\n tableWidth: number\n tableHeight: number\n}\n\ninterface CellPosition {\n rowIdx: number\n colIdx: number\n}\n\ninterface RowRange {\n firstRow: number\n lastRow: number\n}\n\ntype TableSelectionMode = \"single-cell\" | \"column-locked\" | \"grid\"\n\ninterface SelectionResolution {\n mode: TableSelectionMode\n anchorCell: CellPosition | null\n anchorColumn: number | null\n}\n\ninterface CellSelectionCoords {\n anchorX: number\n anchorY: number\n focusX: number\n focusY: number\n}\n\nexport interface TextTableOptions extends RenderableOptions<TextTableRenderable> {\n content?: TextTableContent\n wrapMode?: \"none\" | \"char\" | \"word\"\n columnWidthMode?: TextTableColumnWidthMode\n columnFitter?: TextTableColumnFitter\n cellPadding?: number\n cellPaddingX?: number\n cellPaddingY?: number\n columnGap?: number\n showBorders?: boolean\n border?: boolean\n outerBorder?: boolean\n selectable?: boolean\n selectionBg?: ColorInput\n selectionFg?: ColorInput\n borderStyle?: BorderStyle\n borderColor?: ColorInput\n borderBackgroundColor?: ColorInput\n backgroundColor?: ColorInput\n fg?: ColorInput\n bg?: ColorInput\n attributes?: number\n}\n\nexport class TextTableRenderable extends Renderable {\n private _content: TextTableContent\n private _wrapMode: \"none\" | \"char\" | \"word\"\n private _columnWidthMode: TextTableColumnWidthMode\n private _columnFitter: TextTableColumnFitter\n private _cellPaddingX: number\n private _cellPaddingY: number\n private _columnGap: number\n private _showBorders: boolean\n private _border: boolean\n private _outerBorder: boolean\n private _hasExplicitOuterBorder: boolean\n private _borderStyle: BorderStyle\n private _borderColor: RGBA\n private _borderBackgroundColor: RGBA\n private _backgroundColor: RGBA\n private _defaultFg: RGBA\n private _defaultBg: RGBA\n private _defaultAttributes: number\n private _selectionBg: RGBA | undefined\n private _selectionFg: RGBA | undefined\n private _lastLocalSelection: LocalSelectionBounds | null = null\n private _lastSelectionMode: TableSelectionMode | null = null\n\n private _cells: TextTableCellState[][] = []\n private _prevCellContent: TextTableCellContent[][] = []\n private _rowCount: number = 0\n private _columnCount: number = 0\n\n private _layout: TextTableLayout = this.createEmptyLayout()\n private _layoutDirty: boolean = true\n private _rasterDirty: boolean = true\n\n private _cachedMeasureLayout: TextTableLayout | null = null\n private _cachedMeasureWidth: number | undefined = undefined\n\n private readonly _defaultOptions = {\n content: [] as TextTableContent,\n wrapMode: \"word\" as \"none\" | \"char\" | \"word\",\n columnWidthMode: \"full\" as TextTableColumnWidthMode,\n columnFitter: \"proportional\" as TextTableColumnFitter,\n cellPadding: 0,\n cellPaddingX: undefined as number | undefined,\n cellPaddingY: undefined as number | undefined,\n columnGap: 0,\n showBorders: true,\n border: true,\n outerBorder: true,\n selectable: true,\n selectionBg: undefined as ColorInput | undefined,\n selectionFg: undefined as ColorInput | undefined,\n borderStyle: \"single\" as BorderStyle,\n borderColor: \"#FFFFFF\",\n borderBackgroundColor: \"transparent\",\n backgroundColor: \"transparent\",\n fg: \"#FFFFFF\",\n bg: \"transparent\",\n attributes: 0,\n } satisfies Partial<TextTableOptions>\n\n constructor(ctx: RenderContext, options: TextTableOptions = {}) {\n super(ctx, { ...options, flexShrink: options.flexShrink ?? 0, buffered: true })\n\n this._content = options.content ?? this._defaultOptions.content\n this._wrapMode = options.wrapMode ?? this._defaultOptions.wrapMode\n this._columnWidthMode = options.columnWidthMode ?? this._defaultOptions.columnWidthMode\n this._columnFitter = this.resolveColumnFitter(options.columnFitter)\n this._cellPaddingX = this.resolveCellPadding(options.cellPaddingX ?? options.cellPadding)\n this._cellPaddingY = this.resolveCellPadding(options.cellPaddingY ?? options.cellPadding)\n this._columnGap = this.resolveColumnGap(options.columnGap)\n this._showBorders = options.showBorders ?? this._defaultOptions.showBorders\n this._border = options.border ?? this._defaultOptions.border\n this._hasExplicitOuterBorder = options.outerBorder !== undefined\n this._outerBorder = options.outerBorder ?? this._border\n this.selectable = options.selectable ?? this._defaultOptions.selectable\n this._selectionBg = options.selectionBg ? parseColor(options.selectionBg) : undefined\n this._selectionFg = options.selectionFg ? parseColor(options.selectionFg) : undefined\n this._borderStyle = parseBorderStyle(options.borderStyle, this._defaultOptions.borderStyle)\n this._borderColor = parseColor(options.borderColor ?? this._defaultOptions.borderColor)\n this._borderBackgroundColor = parseColor(\n options.borderBackgroundColor ?? this._defaultOptions.borderBackgroundColor,\n )\n this._backgroundColor = parseColor(options.backgroundColor ?? this._defaultOptions.backgroundColor)\n this._defaultFg = parseColor(options.fg ?? this._defaultOptions.fg)\n this._defaultBg = parseColor(options.bg ?? this._defaultOptions.bg)\n this._defaultAttributes = options.attributes ?? this._defaultOptions.attributes\n\n this.setupMeasureFunc()\n this.rebuildCells()\n }\n\n public get content(): TextTableContent {\n return this._content\n }\n\n public set content(value: TextTableContent) {\n this._content = value ?? []\n this.rebuildCells()\n }\n\n public get wrapMode(): \"none\" | \"char\" | \"word\" {\n return this._wrapMode\n }\n\n public set wrapMode(value: \"none\" | \"char\" | \"word\") {\n if (this._wrapMode === value) return\n this._wrapMode = value\n for (const row of this._cells) {\n for (const cell of row) {\n cell.textBufferView.setWrapMode(value)\n }\n }\n this.invalidateLayoutAndRaster()\n }\n\n public get columnWidthMode(): TextTableColumnWidthMode {\n return this._columnWidthMode\n }\n\n public set columnWidthMode(value: TextTableColumnWidthMode) {\n if (this._columnWidthMode === value) return\n this._columnWidthMode = value\n this.invalidateLayoutAndRaster()\n }\n\n public get columnFitter(): TextTableColumnFitter {\n return this._columnFitter\n }\n\n public set columnFitter(value: TextTableColumnFitter) {\n const next = this.resolveColumnFitter(value)\n if (this._columnFitter === next) return\n this._columnFitter = next\n this.invalidateLayoutAndRaster()\n }\n\n public get cellPadding(): number {\n return this._cellPaddingX === this._cellPaddingY ? this._cellPaddingX : 0\n }\n\n public set cellPadding(value: number) {\n const next = this.resolveCellPadding(value)\n if (this._cellPaddingX === next && this._cellPaddingY === next) return\n this._cellPaddingX = next\n this._cellPaddingY = next\n this.invalidateLayoutAndRaster()\n }\n\n public get cellPaddingX(): number {\n return this._cellPaddingX\n }\n\n public set cellPaddingX(value: number) {\n const next = this.resolveCellPadding(value)\n if (this._cellPaddingX === next) return\n this._cellPaddingX = next\n this.invalidateLayoutAndRaster()\n }\n\n public get cellPaddingY(): number {\n return this._cellPaddingY\n }\n\n public set cellPaddingY(value: number) {\n const next = this.resolveCellPadding(value)\n if (this._cellPaddingY === next) return\n this._cellPaddingY = next\n this.invalidateLayoutAndRaster()\n }\n\n public get columnGap(): number {\n return this._columnGap\n }\n\n public set columnGap(value: number) {\n const next = this.resolveColumnGap(value)\n if (this._columnGap === next) return\n this._columnGap = next\n this.invalidateLayoutAndRaster()\n }\n\n public get showBorders(): boolean {\n return this._showBorders\n }\n\n public set showBorders(value: boolean) {\n if (this._showBorders === value) return\n this._showBorders = value\n this.invalidateRasterOnly()\n }\n\n public get outerBorder(): boolean {\n return this._outerBorder\n }\n\n public set outerBorder(value: boolean) {\n if (this._outerBorder === value) return\n\n this._hasExplicitOuterBorder = true\n this._outerBorder = value\n this.invalidateLayoutAndRaster()\n }\n\n public get border(): boolean {\n return this._border\n }\n\n public set border(value: boolean) {\n if (this._border === value) return\n\n this._border = value\n\n if (!this._hasExplicitOuterBorder) {\n this._outerBorder = value\n }\n\n this.invalidateLayoutAndRaster()\n }\n\n public get borderStyle(): BorderStyle {\n return this._borderStyle\n }\n\n public set borderStyle(value: BorderStyle) {\n const next = parseBorderStyle(value, this._defaultOptions.borderStyle)\n if (this._borderStyle === next) return\n this._borderStyle = next\n this.invalidateRasterOnly()\n }\n\n public get borderColor(): RGBA {\n return this._borderColor\n }\n\n public set borderColor(value: ColorInput) {\n const next = parseColor(value)\n if (this._borderColor === next) return\n this._borderColor = next\n this.invalidateRasterOnly()\n }\n\n public shouldStartSelection(x: number, y: number): boolean {\n if (!this.selectable) return false\n\n this.ensureLayoutReady()\n\n const localX = x - this.x\n const localY = y - this.y\n return this.getCellAtLocalPosition(localX, localY) !== null\n }\n\n public onSelectionChanged(selection: Selection | null): boolean {\n this.ensureLayoutReady()\n\n const previousLocalSelection = this._lastLocalSelection\n const localSelection = convertGlobalToLocalSelection(selection, this.x, this.y)\n this._lastLocalSelection = localSelection\n const dirtyRows = this.getDirtySelectionRowRange(previousLocalSelection, localSelection)\n\n if (!localSelection?.isActive) {\n this.resetCellSelections()\n this._lastSelectionMode = null\n } else {\n this.applySelectionToCells(localSelection, selection?.isStart ?? false)\n }\n\n if (dirtyRows !== null) {\n this.redrawSelectionRows(dirtyRows.firstRow, dirtyRows.lastRow)\n }\n\n return this.hasSelection()\n }\n\n public hasSelection(): boolean {\n for (const row of this._cells) {\n for (const cell of row) {\n if (cell.textBufferView.hasSelection()) {\n return true\n }\n }\n }\n\n return false\n }\n\n public getSelection(): { start: number; end: number } | null {\n for (const row of this._cells) {\n for (const cell of row) {\n const selection = cell.textBufferView.getSelection()\n if (selection) {\n return selection\n }\n }\n }\n\n return null\n }\n\n public getSelectedText(): string {\n const selectedRows: string[] = []\n\n for (let rowIdx = 0; rowIdx < this._rowCount; rowIdx++) {\n const rowSelections: string[] = []\n\n for (let colIdx = 0; colIdx < this._columnCount; colIdx++) {\n const cell = this._cells[rowIdx]?.[colIdx]\n if (!cell || !cell.textBufferView.hasSelection()) continue\n\n const selectedText = cell.textBufferView.getSelectedText()\n if (selectedText.length > 0) {\n rowSelections.push(selectedText)\n }\n }\n\n if (rowSelections.length > 0) {\n selectedRows.push(rowSelections.join(\"\\t\"))\n }\n }\n\n return selectedRows.join(\"\\n\")\n }\n\n protected onResize(width: number, height: number): void {\n this.invalidateLayoutAndRaster(false)\n super.onResize(width, height)\n }\n\n protected renderSelf(buffer: OptimizedBuffer): void {\n if (!this.visible || this.isDestroyed) return\n\n if (this._layoutDirty) {\n this.rebuildLayoutForCurrentWidth()\n }\n\n if (!this._rasterDirty) return\n\n buffer.clear(this._backgroundColor)\n\n if (this._rowCount === 0 || this._columnCount === 0) {\n this._rasterDirty = false\n return\n }\n\n this.drawBorders(buffer)\n this.drawCells(buffer)\n\n this._rasterDirty = false\n }\n\n protected destroySelf(): void {\n this.destroyCells()\n super.destroySelf()\n }\n\n private setupMeasureFunc(): void {\n const measureFunc = (\n width: number,\n widthMode: MeasureMode,\n _height: number,\n _heightMode: MeasureMode,\n ): { width: number; height: number } => {\n const hasWidthConstraint = widthMode !== MeasureMode.Undefined && Number.isFinite(width)\n const rawWidthConstraint = hasWidthConstraint ? Math.max(1, Math.floor(width)) : undefined\n const widthConstraint = this.resolveLayoutWidthConstraint(rawWidthConstraint)\n const measuredLayout = this.computeLayout(widthConstraint)\n this._cachedMeasureLayout = measuredLayout\n this._cachedMeasureWidth = widthConstraint\n\n let measuredWidth = measuredLayout.tableWidth > 0 ? measuredLayout.tableWidth : 1\n let measuredHeight = measuredLayout.tableHeight > 0 ? measuredLayout.tableHeight : 1\n\n if (widthMode === MeasureMode.AtMost && rawWidthConstraint !== undefined && this._positionType !== \"absolute\") {\n measuredWidth = Math.min(rawWidthConstraint, measuredWidth)\n }\n\n // Keep intrinsic height even under AtMost constraints. Clamping here can under-report\n // content height during Yoga measure passes and leave parent scroll extents stale.\n return {\n width: measuredWidth,\n height: measuredHeight,\n }\n }\n\n this.yogaNode.setMeasureFunc(measureFunc)\n }\n\n private rebuildCells(): void {\n const newRowCount = this._content.length\n const newColumnCount = this._content.reduce((max, row) => Math.max(max, row.length), 0)\n\n if (this._cells.length === 0) {\n this._rowCount = newRowCount\n this._columnCount = newColumnCount\n this._cells = []\n this._prevCellContent = []\n\n for (let rowIdx = 0; rowIdx < newRowCount; rowIdx++) {\n const row = this._content[rowIdx] ?? []\n const rowCells: TextTableCellState[] = []\n const rowRefs: TextTableCellContent[] = []\n\n for (let colIdx = 0; colIdx < newColumnCount; colIdx++) {\n const cellContent = row[colIdx]\n rowCells.push(this.createCell(cellContent))\n rowRefs.push(cellContent)\n }\n\n this._cells.push(rowCells)\n this._prevCellContent.push(rowRefs)\n }\n\n this.invalidateLayoutAndRaster()\n return\n }\n\n this.updateCellsDiff(newRowCount, newColumnCount)\n this.invalidateLayoutAndRaster()\n }\n\n private updateCellsDiff(newRowCount: number, newColumnCount: number): void {\n const oldRowCount = this._rowCount\n const oldColumnCount = this._columnCount\n const keepRows = Math.min(oldRowCount, newRowCount)\n const keepCols = Math.min(oldColumnCount, newColumnCount)\n\n for (let rowIdx = 0; rowIdx < keepRows; rowIdx++) {\n const newRow = this._content[rowIdx] ?? []\n const cellRow = this._cells[rowIdx]\n const refRow = this._prevCellContent[rowIdx]\n\n for (let colIdx = 0; colIdx < keepCols; colIdx++) {\n const cellContent = newRow[colIdx]\n if (cellContent === refRow[colIdx]) continue\n\n const oldCell = cellRow[colIdx]\n oldCell.textBufferView.destroy()\n oldCell.textBuffer.destroy()\n oldCell.syntaxStyle.destroy()\n\n cellRow[colIdx] = this.createCell(cellContent)\n refRow[colIdx] = cellContent\n }\n\n if (newColumnCount > oldColumnCount) {\n for (let colIdx = oldColumnCount; colIdx < newColumnCount; colIdx++) {\n const cellContent = newRow[colIdx]\n cellRow.push(this.createCell(cellContent))\n refRow.push(cellContent)\n }\n } else if (newColumnCount < oldColumnCount) {\n for (let colIdx = newColumnCount; colIdx < oldColumnCount; colIdx++) {\n const cell = cellRow[colIdx]\n cell.textBufferView.destroy()\n cell.textBuffer.destroy()\n cell.syntaxStyle.destroy()\n }\n cellRow.length = newColumnCount\n refRow.length = newColumnCount\n }\n }\n\n if (newRowCount > oldRowCount) {\n for (let rowIdx = oldRowCount; rowIdx < newRowCount; rowIdx++) {\n const newRow = this._content[rowIdx] ?? []\n const rowCells: TextTableCellState[] = []\n const rowRefs: TextTableCellContent[] = []\n\n for (let colIdx = 0; colIdx < newColumnCount; colIdx++) {\n const cellContent = newRow[colIdx]\n rowCells.push(this.createCell(cellContent))\n rowRefs.push(cellContent)\n }\n\n this._cells.push(rowCells)\n this._prevCellContent.push(rowRefs)\n }\n } else if (newRowCount < oldRowCount) {\n for (let rowIdx = newRowCount; rowIdx < oldRowCount; rowIdx++) {\n const row = this._cells[rowIdx]\n for (const cell of row) {\n cell.textBufferView.destroy()\n cell.textBuffer.destroy()\n cell.syntaxStyle.destroy()\n }\n }\n this._cells.length = newRowCount\n this._prevCellContent.length = newRowCount\n }\n\n this._rowCount = newRowCount\n this._columnCount = newColumnCount\n }\n\n private createCell(content: TextTableCellContent): TextTableCellState {\n const styledText = this.toStyledText(content)\n const textBuffer = TextBuffer.create(this._ctx.widthMethod)\n const syntaxStyle = SyntaxStyle.create()\n\n textBuffer.setDefaultFg(this._defaultFg)\n textBuffer.setDefaultBg(this._defaultBg)\n textBuffer.setDefaultAttributes(this._defaultAttributes)\n textBuffer.setSyntaxStyle(syntaxStyle)\n textBuffer.setStyledText(styledText)\n\n const textBufferView = TextBufferView.create(textBuffer)\n textBufferView.setWrapMode(this._wrapMode)\n\n return { textBuffer, textBufferView, syntaxStyle }\n }\n\n private toStyledText(content: TextTableCellContent): StyledText {\n if (Array.isArray(content)) {\n return new StyledText(content)\n }\n\n if (content === null || content === undefined) {\n return stringToStyledText(\"\")\n }\n\n return stringToStyledText(String(content))\n }\n\n private destroyCells(): void {\n for (const row of this._cells) {\n for (const cell of row) {\n cell.textBufferView.destroy()\n cell.textBuffer.destroy()\n cell.syntaxStyle.destroy()\n }\n }\n\n this._cells = []\n this._prevCellContent = []\n this._rowCount = 0\n this._columnCount = 0\n this._layout = this.createEmptyLayout()\n }\n\n private rebuildLayoutForCurrentWidth(): void {\n const maxTableWidth = this.resolveLayoutWidthConstraint(this.width)\n\n let layout: TextTableLayout\n if (this._cachedMeasureLayout !== null && this._cachedMeasureWidth === maxTableWidth) {\n layout = this._cachedMeasureLayout\n } else {\n layout = this.computeLayout(maxTableWidth)\n }\n this._cachedMeasureLayout = null\n this._cachedMeasureWidth = undefined\n\n this._layout = layout\n this.applyLayoutToViews(layout)\n this._layoutDirty = false\n\n if (this._lastLocalSelection?.isActive) {\n this.applySelectionToCells(this._lastLocalSelection, true)\n }\n }\n\n private computeLayout(maxTableWidth?: number): TextTableLayout {\n if (this._rowCount === 0 || this._columnCount === 0) {\n return this.createEmptyLayout()\n }\n\n const borderLayout = this.resolveBorderLayout()\n const columnWidths = this.computeColumnWidths(maxTableWidth, borderLayout)\n const rowHeights = this.computeRowHeights(columnWidths)\n const columnOffsets = this.computeOffsets(\n columnWidths,\n borderLayout.left,\n borderLayout.right,\n borderLayout.innerVertical,\n this.getInterColumnGap(borderLayout),\n )\n const rowOffsets = this.computeOffsets(\n rowHeights,\n borderLayout.top,\n borderLayout.bottom,\n borderLayout.innerHorizontal,\n )\n return {\n columnWidths,\n rowHeights,\n columnOffsets,\n rowOffsets,\n columnOffsetsI32: new Int32Array(columnOffsets),\n rowOffsetsI32: new Int32Array(rowOffsets),\n tableWidth: (columnOffsets[columnOffsets.length - 1] ?? 0) + 1,\n tableHeight: (rowOffsets[rowOffsets.length - 1] ?? 0) + 1,\n }\n }\n\n private isFullWidthMode(): boolean {\n return this._columnWidthMode === \"full\"\n }\n\n private computeColumnWidths(maxTableWidth: number | undefined, borderLayout: ResolvedTableBorderLayout): number[] {\n const horizontalPadding = this.getHorizontalCellPadding()\n const intrinsicWidths = new Array(this._columnCount).fill(1 + horizontalPadding)\n\n for (let rowIdx = 0; rowIdx < this._rowCount; rowIdx++) {\n for (let colIdx = 0; colIdx < this._columnCount; colIdx++) {\n const cell = this._cells[rowIdx]?.[colIdx]\n if (!cell) continue\n\n const measure = cell.textBufferView.measureForDimensions(0, MEASURE_HEIGHT)\n const measuredWidth = Math.max(1, measure?.widthColsMax ?? 0) + horizontalPadding\n intrinsicWidths[colIdx] = Math.max(intrinsicWidths[colIdx], measuredWidth)\n }\n }\n\n if (maxTableWidth === undefined || !Number.isFinite(maxTableWidth) || maxTableWidth <= 0) {\n return intrinsicWidths\n }\n\n const maxContentWidth = Math.max(\n 1,\n Math.floor(maxTableWidth) - this.getVerticalBorderCount(borderLayout) - this.getTotalInterColumnGap(borderLayout),\n )\n const currentWidth = intrinsicWidths.reduce((sum, width) => sum + width, 0)\n\n if (currentWidth === maxContentWidth) {\n return intrinsicWidths\n }\n\n if (currentWidth < maxContentWidth) {\n if (this.isFullWidthMode()) {\n return this.expandColumnWidths(intrinsicWidths, maxContentWidth)\n }\n\n return intrinsicWidths\n }\n\n if (this._wrapMode === \"none\") {\n return intrinsicWidths\n }\n\n return this.fitColumnWidths(intrinsicWidths, maxContentWidth)\n }\n\n private expandColumnWidths(widths: number[], targetContentWidth: number): number[] {\n const baseWidths = widths.map((width) => Math.max(1, Math.floor(width)))\n const totalBaseWidth = baseWidths.reduce((sum, width) => sum + width, 0)\n\n if (totalBaseWidth >= targetContentWidth) {\n return baseWidths\n }\n\n const expanded = [...baseWidths]\n const columns = expanded.length\n const extraWidth = targetContentWidth - totalBaseWidth\n const sharedWidth = Math.floor(extraWidth / columns)\n const remainder = extraWidth % columns\n\n for (let idx = 0; idx < columns; idx++) {\n expanded[idx] += sharedWidth\n if (idx < remainder) {\n expanded[idx] += 1\n }\n }\n\n return expanded\n }\n\n private fitColumnWidths(widths: number[], targetContentWidth: number): number[] {\n if (this._columnFitter === \"balanced\") {\n return this.fitColumnWidthsBalanced(widths, targetContentWidth)\n }\n\n return this.fitColumnWidthsProportional(widths, targetContentWidth)\n }\n\n private fitColumnWidthsProportional(widths: number[], targetContentWidth: number): number[] {\n const minWidth = 1 + this.getHorizontalCellPadding()\n return allocateProportionalColumnWidths(widths, targetContentWidth, minWidth)\n }\n\n private fitColumnWidthsBalanced(widths: number[], targetContentWidth: number): number[] {\n const minWidth = 1 + this.getHorizontalCellPadding()\n const hardMinWidths = new Array(widths.length).fill(minWidth)\n const baseWidths = widths.map((width) => Math.max(1, Math.floor(width)))\n const totalBaseWidth = baseWidths.reduce((sum, width) => sum + width, 0)\n const columns = baseWidths.length\n\n if (columns === 0 || totalBaseWidth <= targetContentWidth) {\n return baseWidths\n }\n\n const evenShare = Math.max(minWidth, Math.floor(targetContentWidth / columns))\n const preferredMinWidths = baseWidths.map((width) => Math.min(width, evenShare))\n const preferredMinTotal = preferredMinWidths.reduce((sum, width) => sum + width, 0)\n const floorWidths = preferredMinTotal <= targetContentWidth ? preferredMinWidths : hardMinWidths\n const floorTotal = floorWidths.reduce((sum, width) => sum + width, 0)\n const clampedTarget = Math.max(floorTotal, targetContentWidth)\n\n if (totalBaseWidth <= clampedTarget) {\n return baseWidths\n }\n\n const shrinkable = baseWidths.map((width, idx) => width - floorWidths[idx])\n const totalShrinkable = shrinkable.reduce((sum, value) => sum + value, 0)\n if (totalShrinkable <= 0) {\n return [...floorWidths]\n }\n\n const targetShrink = totalBaseWidth - clampedTarget\n const shrink = this.allocateShrinkByWeight(shrinkable, targetShrink, \"sqrt\")\n\n return baseWidths.map((width, idx) => Math.max(floorWidths[idx], width - shrink[idx]))\n }\n\n private allocateShrinkByWeight(shrinkable: number[], targetShrink: number, mode: \"linear\" | \"sqrt\"): number[] {\n const shrink = new Array(shrinkable.length).fill(0)\n\n if (targetShrink <= 0) {\n return shrink\n }\n\n const weights = shrinkable.map((value) => {\n if (value <= 0) {\n return 0\n }\n\n return mode === \"sqrt\" ? Math.sqrt(value) : value\n })\n const totalWeight = weights.reduce((sum, value) => sum + value, 0)\n\n if (totalWeight <= 0) {\n return shrink\n }\n\n const fractions = new Array(shrinkable.length).fill(0)\n let usedShrink = 0\n\n for (let idx = 0; idx < shrinkable.length; idx++) {\n if (shrinkable[idx] <= 0 || weights[idx] <= 0) continue\n\n const exact = (weights[idx] / totalWeight) * targetShrink\n const whole = Math.min(shrinkable[idx], Math.floor(exact))\n shrink[idx] = whole\n fractions[idx] = exact - whole\n usedShrink += whole\n }\n\n let remainingShrink = targetShrink - usedShrink\n\n while (remainingShrink > 0) {\n let bestIdx = -1\n let bestFraction = -1\n\n for (let idx = 0; idx < shrinkable.length; idx++) {\n if (shrinkable[idx] - shrink[idx] <= 0) continue\n\n if (\n bestIdx === -1 ||\n fractions[idx] > bestFraction ||\n (fractions[idx] === bestFraction && shrinkable[idx] > shrinkable[bestIdx])\n ) {\n bestIdx = idx\n bestFraction = fractions[idx]\n }\n }\n\n if (bestIdx === -1) {\n break\n }\n\n shrink[bestIdx] += 1\n fractions[bestIdx] = 0\n remainingShrink -= 1\n }\n\n return shrink\n }\n\n private computeRowHeights(columnWidths: number[]): number[] {\n const horizontalPadding = this.getHorizontalCellPadding()\n const verticalPadding = this.getVerticalCellPadding()\n const rowHeights = new Array(this._rowCount).fill(1 + verticalPadding)\n\n for (let rowIdx = 0; rowIdx < this._rowCount; rowIdx++) {\n for (let colIdx = 0; colIdx < this._columnCount; colIdx++) {\n const cell = this._cells[rowIdx]?.[colIdx]\n if (!cell) continue\n\n const width = Math.max(1, (columnWidths[colIdx] ?? 1) - horizontalPadding)\n const measure = cell.textBufferView.measureForDimensions(width, MEASURE_HEIGHT)\n const lineCount = Math.max(1, measure?.lineCount ?? 1)\n rowHeights[rowIdx] = Math.max(rowHeights[rowIdx], lineCount + verticalPadding)\n }\n }\n\n return rowHeights\n }\n\n private computeOffsets(\n parts: number[],\n startBoundary: boolean,\n endBoundary: boolean,\n includeInnerBoundaries: boolean,\n innerGap: number = 0,\n ): number[] {\n const offsets: number[] = [startBoundary ? 0 : -1]\n let cursor = offsets[0] ?? 0\n\n for (let idx = 0; idx < parts.length; idx++) {\n const size = parts[idx] ?? 1\n const separatorAfter = idx < parts.length - 1 ? (includeInnerBoundaries ? 1 : innerGap) : endBoundary ? 1 : 0\n cursor += size + separatorAfter\n offsets.push(cursor)\n }\n\n return offsets\n }\n\n private getInterColumnGap(borderLayout: ResolvedTableBorderLayout): number {\n if (borderLayout.innerVertical) {\n return 0\n }\n\n return this._columnGap\n }\n\n private getTotalInterColumnGap(borderLayout: ResolvedTableBorderLayout): number {\n return Math.max(0, this._columnCount - 1) * this.getInterColumnGap(borderLayout)\n }\n\n private applyLayoutToViews(layout: TextTableLayout): void {\n const horizontalPadding = this.getHorizontalCellPadding()\n const verticalPadding = this.getVerticalCellPadding()\n\n for (let rowIdx = 0; rowIdx < this._rowCount; rowIdx++) {\n for (let colIdx = 0; colIdx < this._columnCount; colIdx++) {\n const cell = this._cells[rowIdx]?.[colIdx]\n if (!cell) continue\n\n const colWidth = layout.columnWidths[colIdx] ?? 1\n const rowHeight = layout.rowHeights[rowIdx] ?? 1\n const contentWidth = Math.max(1, colWidth - horizontalPadding)\n const contentHeight = Math.max(1, rowHeight - verticalPadding)\n\n if (this._wrapMode === \"none\") {\n cell.textBufferView.setWrapWidth(null)\n } else {\n cell.textBufferView.setWrapWidth(contentWidth)\n }\n\n cell.textBufferView.setViewport(0, 0, contentWidth, contentHeight)\n }\n }\n }\n\n private resolveBorderLayout(): ResolvedTableBorderLayout {\n return {\n left: this._outerBorder,\n right: this._outerBorder,\n top: this._outerBorder,\n bottom: this._outerBorder,\n innerVertical: this._border && this._columnCount > 1,\n innerHorizontal: this._border && this._rowCount > 1,\n }\n }\n\n private getVerticalBorderCount(borderLayout: ResolvedTableBorderLayout): number {\n return (\n (borderLayout.left ? 1 : 0) +\n (borderLayout.right ? 1 : 0) +\n (borderLayout.innerVertical ? Math.max(0, this._columnCount - 1) : 0)\n )\n }\n\n private getHorizontalBorderCount(borderLayout: ResolvedTableBorderLayout): number {\n return (\n (borderLayout.top ? 1 : 0) +\n (borderLayout.bottom ? 1 : 0) +\n (borderLayout.innerHorizontal ? Math.max(0, this._rowCount - 1) : 0)\n )\n }\n\n private drawBorders(buffer: OptimizedBuffer): void {\n if (!this._showBorders) {\n return\n }\n\n const borderLayout = this.resolveBorderLayout()\n\n if (this.getVerticalBorderCount(borderLayout) === 0 && this.getHorizontalBorderCount(borderLayout) === 0) {\n return\n }\n\n buffer.drawGrid({\n borderChars: BorderCharArrays[this._borderStyle],\n borderFg: this._borderColor,\n borderBg: this._borderBackgroundColor,\n columnOffsets: this._layout.columnOffsetsI32,\n rowOffsets: this._layout.rowOffsetsI32,\n drawInner: this._border,\n drawOuter: this._outerBorder,\n })\n }\n\n private drawCells(buffer: OptimizedBuffer): void {\n this.drawCellRange(buffer, 0, this._rowCount - 1)\n }\n\n private drawCellRange(buffer: OptimizedBuffer, firstRow: number, lastRow: number): void {\n const colOffsets = this._layout.columnOffsets\n const rowOffsets = this._layout.rowOffsets\n const cellPaddingX = this._cellPaddingX\n const cellPaddingY = this._cellPaddingY\n\n for (let rowIdx = firstRow; rowIdx <= lastRow; rowIdx++) {\n const cellY = (rowOffsets[rowIdx] ?? 0) + 1 + cellPaddingY\n\n for (let colIdx = 0; colIdx < this._columnCount; colIdx++) {\n const cell = this._cells[rowIdx]?.[colIdx]\n if (!cell) continue\n buffer.drawTextBuffer(cell.textBufferView, (colOffsets[colIdx] ?? 0) + 1 + cellPaddingX, cellY)\n }\n }\n }\n\n private redrawSelectionRows(firstRow: number, lastRow: number): void {\n if (firstRow > lastRow) return\n\n if (this._backgroundColor.a < 1) {\n this.invalidateRasterOnly()\n return\n }\n\n const buffer = this.frameBuffer\n if (!buffer) return\n\n this.clearCellRange(buffer, firstRow, lastRow)\n this.drawCellRange(buffer, firstRow, lastRow)\n this.requestRender()\n }\n\n private clearCellRange(buffer: OptimizedBuffer, firstRow: number, lastRow: number): void {\n const colWidths = this._layout.columnWidths\n const rowHeights = this._layout.rowHeights\n const colOffsets = this._layout.columnOffsets\n const rowOffsets = this._layout.rowOffsets\n\n for (let rowIdx = firstRow; rowIdx <= lastRow; rowIdx++) {\n const cellY = (rowOffsets[rowIdx] ?? 0) + 1\n const rowHeight = rowHeights[rowIdx] ?? 1\n\n for (let colIdx = 0; colIdx < this._columnCount; colIdx++) {\n const cellX = (colOffsets[colIdx] ?? 0) + 1\n const colWidth = colWidths[colIdx] ?? 1\n if (this._backgroundColor.a < 1) {\n for (let y = cellY; y < cellY + rowHeight; y++) {\n for (let x = cellX; x < cellX + colWidth; x++) {\n buffer.setCell(x, y, \" \", this._defaultFg, this._backgroundColor, this._defaultAttributes)\n }\n }\n } else {\n buffer.fillRect(cellX, cellY, colWidth, rowHeight, this._backgroundColor)\n }\n }\n }\n }\n\n private ensureLayoutReady(): void {\n if (!this._layoutDirty) return\n this.rebuildLayoutForCurrentWidth()\n }\n\n private getCellAtLocalPosition(localX: number, localY: number): CellPosition | null {\n if (this._rowCount === 0 || this._columnCount === 0) return null\n if (localX < 0 || localY < 0 || localX >= this._layout.tableWidth || localY >= this._layout.tableHeight) {\n return null\n }\n\n let rowIdx = -1\n for (let idx = 0; idx < this._rowCount; idx++) {\n const top = (this._layout.rowOffsets[idx] ?? 0) + 1\n const bottom = top + (this._layout.rowHeights[idx] ?? 1) - 1\n if (localY >= top && localY <= bottom) {\n rowIdx = idx\n break\n }\n }\n\n if (rowIdx < 0) return null\n\n let colIdx = -1\n for (let idx = 0; idx < this._columnCount; idx++) {\n const left = (this._layout.columnOffsets[idx] ?? 0) + 1\n const right = left + (this._layout.columnWidths[idx] ?? 1) - 1\n if (localX >= left && localX <= right) {\n colIdx = idx\n break\n }\n }\n\n if (colIdx < 0) return null\n\n return { rowIdx, colIdx }\n }\n\n private applySelectionToCells(localSelection: LocalSelectionBounds, isStart: boolean): void {\n if (localSelection.anchorX === localSelection.focusX && localSelection.anchorY === localSelection.focusY) {\n this.resetCellSelections()\n this._lastSelectionMode = null\n return\n }\n\n const minSelY = Math.min(localSelection.anchorY, localSelection.focusY)\n const maxSelY = Math.max(localSelection.anchorY, localSelection.focusY)\n\n const firstRow = this.findRowForLocalY(minSelY)\n const lastRow = this.findRowForLocalY(maxSelY)\n const selection = this.resolveSelectionResolution(localSelection)\n const modeChanged = this._lastSelectionMode !== selection.mode\n this._lastSelectionMode = selection.mode\n const lockToAnchorColumn = selection.mode === \"column-locked\" && selection.anchorColumn !== null\n\n for (let rowIdx = 0; rowIdx < this._rowCount; rowIdx++) {\n if (rowIdx < firstRow || rowIdx > lastRow) {\n this.resetRowSelection(rowIdx)\n continue\n }\n\n const cellTop = (this._layout.rowOffsets[rowIdx] ?? 0) + 1 + this._cellPaddingY\n\n for (let colIdx = 0; colIdx < this._columnCount; colIdx++) {\n const cell = this._cells[rowIdx]?.[colIdx]\n if (!cell) continue\n\n if (lockToAnchorColumn && colIdx !== selection.anchorColumn) {\n cell.textBufferView.resetLocalSelection()\n continue\n }\n\n const cellLeft = (this._layout.columnOffsets[colIdx] ?? 0) + 1 + this._cellPaddingX\n let coords: CellSelectionCoords = {\n anchorX: localSelection.anchorX - cellLeft,\n anchorY: localSelection.anchorY - cellTop,\n focusX: localSelection.focusX - cellLeft,\n focusY: localSelection.focusY - cellTop,\n }\n\n const isAnchorCell =\n selection.anchorCell !== null &&\n selection.anchorCell.rowIdx === rowIdx &&\n selection.anchorCell.colIdx === colIdx\n\n if (selection.mode === \"single-cell\" && !isAnchorCell) {\n cell.textBufferView.resetLocalSelection()\n continue\n }\n\n const forceSet = isAnchorCell && selection.mode !== \"single-cell\"\n\n if (forceSet) {\n coords = this.getFullCellSelectionCoords(rowIdx, colIdx)\n }\n\n const shouldUseSet = isStart || modeChanged || forceSet\n\n if (shouldUseSet) {\n cell.textBufferView.setLocalSelection(\n coords.anchorX,\n coords.anchorY,\n coords.focusX,\n coords.focusY,\n this._selectionBg,\n this._selectionFg,\n )\n } else {\n cell.textBufferView.updateLocalSelection(\n coords.anchorX,\n coords.anchorY,\n coords.focusX,\n coords.focusY,\n this._selectionBg,\n this._selectionFg,\n )\n }\n }\n }\n }\n\n private resolveSelectionResolution(localSelection: LocalSelectionBounds): SelectionResolution {\n const anchorCell = this.getCellAtLocalPosition(localSelection.anchorX, localSelection.anchorY)\n const focusCell = this.getCellAtLocalPosition(localSelection.focusX, localSelection.focusY)\n const anchorColumn = anchorCell?.colIdx ?? this.getColumnAtLocalX(localSelection.anchorX)\n\n if (\n anchorCell !== null &&\n focusCell !== null &&\n anchorCell.rowIdx === focusCell.rowIdx &&\n anchorCell.colIdx === focusCell.colIdx\n ) {\n return {\n mode: \"single-cell\",\n anchorCell,\n anchorColumn,\n }\n }\n\n const focusColumn = this.getColumnAtLocalX(localSelection.focusX)\n if (anchorColumn !== null && focusColumn === anchorColumn) {\n return {\n mode: \"column-locked\",\n anchorCell,\n anchorColumn,\n }\n }\n\n return {\n mode: \"grid\",\n anchorCell,\n anchorColumn,\n }\n }\n\n private getColumnAtLocalX(localX: number): number | null {\n if (this._columnCount === 0) return null\n if (localX < 0 || localX >= this._layout.tableWidth) return null\n\n for (let colIdx = 0; colIdx < this._columnCount; colIdx++) {\n const colStart = (this._layout.columnOffsets[colIdx] ?? 0) + 1\n const colEnd = colStart + (this._layout.columnWidths[colIdx] ?? 1) - 1\n if (localX >= colStart && localX <= colEnd) {\n return colIdx\n }\n }\n\n return null\n }\n\n private getFullCellSelectionCoords(rowIdx: number, colIdx: number): CellSelectionCoords {\n const colWidth = this._layout.columnWidths[colIdx] ?? 1\n const rowHeight = this._layout.rowHeights[rowIdx] ?? 1\n const contentWidth = Math.max(1, colWidth - this.getHorizontalCellPadding())\n const contentHeight = Math.max(1, rowHeight - this.getVerticalCellPadding())\n\n return {\n anchorX: -1,\n anchorY: 0,\n focusX: contentWidth,\n focusY: contentHeight,\n }\n }\n\n private findRowForLocalY(localY: number): number {\n if (this._rowCount === 0) return 0\n if (localY < 0) return 0\n\n for (let rowIdx = 0; rowIdx < this._rowCount; rowIdx++) {\n const rowStart = (this._layout.rowOffsets[rowIdx] ?? 0) + 1\n const rowEnd = rowStart + (this._layout.rowHeights[rowIdx] ?? 1) - 1\n if (localY <= rowEnd) return rowIdx\n }\n\n return this._rowCount - 1\n }\n\n private getSelectionRowRange(selection: LocalSelectionBounds | null): RowRange | null {\n if (!selection?.isActive || this._rowCount === 0) return null\n\n const minSelY = Math.min(selection.anchorY, selection.focusY)\n const maxSelY = Math.max(selection.anchorY, selection.focusY)\n\n return {\n firstRow: this.findRowForLocalY(minSelY),\n lastRow: this.findRowForLocalY(maxSelY),\n }\n }\n\n private getDirtySelectionRowRange(\n previousSelection: LocalSelectionBounds | null,\n currentSelection: LocalSelectionBounds | null,\n ): RowRange | null {\n const previousRange = this.getSelectionRowRange(previousSelection)\n const currentRange = this.getSelectionRowRange(currentSelection)\n\n if (previousRange === null) return currentRange\n if (currentRange === null) return previousRange\n\n return {\n firstRow: Math.min(previousRange.firstRow, currentRange.firstRow),\n lastRow: Math.max(previousRange.lastRow, currentRange.lastRow),\n }\n }\n\n private resetRowSelection(rowIdx: number): void {\n const row = this._cells[rowIdx]\n if (!row) return\n\n for (const cell of row) {\n cell.textBufferView.resetLocalSelection()\n }\n }\n\n private resetCellSelections(): void {\n for (let rowIdx = 0; rowIdx < this._rowCount; rowIdx++) {\n this.resetRowSelection(rowIdx)\n }\n }\n\n private createEmptyLayout(): TextTableLayout {\n return {\n columnWidths: [],\n rowHeights: [],\n columnOffsets: [0],\n rowOffsets: [0],\n columnOffsetsI32: new Int32Array([0]),\n rowOffsetsI32: new Int32Array([0]),\n tableWidth: 0,\n tableHeight: 0,\n }\n }\n\n private resolveLayoutWidthConstraint(width: number | undefined): number | undefined {\n if (width === undefined || !Number.isFinite(width) || width <= 0) {\n return undefined\n }\n\n if (this._wrapMode !== \"none\" || this.isFullWidthMode()) {\n return Math.max(1, Math.floor(width))\n }\n\n return undefined\n }\n\n private getHorizontalCellPadding(): number {\n return this._cellPaddingX * 2\n }\n\n private getVerticalCellPadding(): number {\n return this._cellPaddingY * 2\n }\n\n private resolveColumnFitter(value: TextTableColumnFitter | undefined): TextTableColumnFitter {\n if (value === undefined) {\n return this._defaultOptions.columnFitter\n }\n\n return value === \"balanced\" ? \"balanced\" : \"proportional\"\n }\n\n private resolveCellPadding(value: number | undefined): number {\n if (value === undefined || !Number.isFinite(value)) {\n return this._defaultOptions.cellPadding\n }\n\n return Math.max(0, Math.floor(value))\n }\n\n private resolveColumnGap(value: number | undefined): number {\n if (value === undefined || !Number.isFinite(value)) {\n return this._defaultOptions.columnGap\n }\n\n return Math.max(0, Math.floor(value))\n }\n\n private invalidateLayoutAndRaster(markYogaDirty: boolean = true): void {\n this._layoutDirty = true\n this._rasterDirty = true\n this._cachedMeasureLayout = null\n this._cachedMeasureWidth = undefined\n\n if (markYogaDirty) {\n this.yogaNode.markDirty()\n }\n\n this.requestRender()\n }\n\n private invalidateRasterOnly(): void {\n this._rasterDirty = true\n this.requestRender()\n }\n}\n",
|
|
64
64
|
"import { Lexer, type MarkedToken } from \"marked\"\n\nexport interface ParseState {\n content: string\n tokens: MarkedToken[]\n stableTokenCount?: number\n}\n\n/**\n * Incrementally parse markdown, reusing unchanged tokens from previous parse.\n * Compares token.raw at each offset - matching tokens keep same object reference.\n */\nexport function parseMarkdownIncremental(\n newContent: string,\n prevState: ParseState | null,\n trailingUnstable: number = 2,\n): ParseState {\n if (!prevState || prevState.tokens.length === 0) {\n try {\n const tokens = Lexer.lex(newContent, { gfm: true }) as MarkedToken[]\n return {\n content: newContent,\n tokens,\n stableTokenCount: Math.max(0, tokens.length - trailingUnstable),\n }\n } catch {\n return { content: newContent, tokens: [], stableTokenCount: 0 }\n }\n }\n\n // Find how many tokens from start are unchanged\n let offset = 0\n let reuseCount = 0\n\n for (const token of prevState.tokens) {\n const tokenLength = token.raw.length\n if (offset + tokenLength <= newContent.length && newContent.startsWith(token.raw, offset)) {\n reuseCount++\n offset += tokenLength\n } else {\n break\n }\n }\n\n // Keep last N tokens unstable (e.g. \"# Hello\" might become \"# Hello World\")\n reuseCount = Math.max(0, reuseCount - trailingUnstable)\n\n offset = 0\n for (let i = 0; i < reuseCount; i++) {\n offset += prevState.tokens[i].raw.length\n }\n\n const stableTokens = prevState.tokens.slice(0, reuseCount)\n const remainingContent = newContent.slice(offset)\n\n if (!remainingContent) {\n return {\n content: newContent,\n tokens: stableTokens,\n stableTokenCount: stableTokens.length,\n }\n }\n\n try {\n const newTokens = Lexer.lex(remainingContent, { gfm: true }) as MarkedToken[]\n return {\n content: newContent,\n tokens: [...stableTokens, ...newTokens],\n stableTokenCount: trailingUnstable === 0 ? stableTokens.length + newTokens.length : stableTokens.length,\n }\n } catch {\n try {\n const fullTokens = Lexer.lex(newContent, { gfm: true }) as MarkedToken[]\n return { content: newContent, tokens: fullTokens, stableTokenCount: 0 }\n } catch {\n return { content: newContent, tokens: [], stableTokenCount: 0 }\n }\n }\n}\n",
|
|
65
|
-
"import { Renderable, type RenderableOptions } from \"../Renderable.js\"\nimport { type RenderContext } from \"../types.js\"\nimport { SyntaxStyle, type StyleDefinition } from \"../syntax-style.js\"\nimport type { TextChunk } from \"../text-buffer.js\"\nimport { createTextAttributes } from \"../utils.js\"\nimport type { BorderStyle } from \"../lib/border.js\"\nimport { RGBA, parseColor, type ColorInput } from \"../lib/RGBA.js\"\nimport { Lexer, type MarkedToken, type Token, type Tokens } from \"marked\"\nimport { CodeRenderable, type OnChunksCallback } from \"./Code.js\"\nimport { BoxRenderable } from \"./Box.js\"\nimport { StyledText } from \"../lib/styled-text.js\"\nimport { TextRenderable } from \"./Text.js\"\nimport {\n TextTableRenderable,\n type TextTableCellContent,\n type TextTableColumnFitter,\n type TextTableColumnWidthMode,\n type TextTableContent,\n} from \"./TextTable.js\"\nimport type { TreeSitterClient } from \"../lib/tree-sitter/index.js\"\nimport { infoStringToFiletype } from \"../lib/tree-sitter/resolve-ft.js\"\nimport { parseMarkdownIncremental, type ParseState } from \"./markdown-parser.js\"\nimport type { OptimizedBuffer } from \"../buffer.js\"\nimport { detectLinks } from \"../lib/detect-links.js\"\n\nexport type MarkdownTableStyle = \"grid\" | \"columns\"\n\nexport interface MarkdownTableOptions {\n /**\n * Visual style preset for markdown tables.\n * - \"grid\": boxed table with visible borders.\n * - \"columns\": borderless columns optimized for separated block output.\n *\n * Defaults to \"columns\" in `internalBlockMode: \"top-level\"`, otherwise \"grid\".\n */\n style?: MarkdownTableStyle\n /**\n * Strategy for sizing table columns.\n * - \"content\": columns fit to intrinsic content width.\n * - \"full\": columns expand to fill available width.\n */\n widthMode?: TextTableColumnWidthMode\n /**\n * Column fitting method when shrinking constrained tables.\n */\n columnFitter?: TextTableColumnFitter\n /**\n * Wrapping strategy for table cell content.\n */\n wrapMode?: \"none\" | \"char\" | \"word\"\n /**\n * Padding applied on all sides of each table cell.\n */\n cellPadding?: number\n /**\n * Horizontal padding applied on the left and right of each table cell.\n */\n cellPaddingX?: number\n /**\n * Vertical padding applied above and below each table cell.\n */\n cellPaddingY?: number\n /**\n * Enables/disables table border rendering.\n */\n borders?: boolean\n /**\n * Overrides outer border visibility. Defaults to `borders`.\n */\n outerBorder?: boolean\n /**\n * Border style for markdown tables.\n */\n borderStyle?: BorderStyle\n /**\n * Border color for markdown tables. Defaults to conceal style color.\n */\n borderColor?: ColorInput\n /**\n * Enables/disables selection support on markdown tables.\n */\n selectable?: boolean\n}\n\nexport interface MarkdownOptions extends RenderableOptions<MarkdownRenderable> {\n content?: string\n syntaxStyle: SyntaxStyle\n fg?: ColorInput\n bg?: ColorInput\n /** Controls concealment for markdown syntax markers in markdown text blocks. */\n conceal?: boolean\n /** Controls concealment inside fenced code blocks rendered by CodeRenderable. */\n concealCode?: boolean\n treeSitterClient?: TreeSitterClient\n /**\n * Enable streaming mode for incremental content updates.\n *\n * Semantics:\n * - The trailing markdown block stays unstable while streaming is enabled.\n * - Tables render all rows produced by the markdown parser (including trailing rows).\n * - Incomplete table rows are normalized by the parser and rendered with empty cells\n * where data is missing.\n *\n * Expectations:\n * - Keep this true while chunks are still being appended.\n * - Set this to false once streaming is complete to finalize trailing token parsing.\n */\n streaming?: boolean\n /**\n * Options for internally rendered markdown tables.\n */\n tableOptions?: MarkdownTableOptions\n /**\n * Custom node renderer. Return a Renderable to override default rendering,\n * or undefined/null to use default rendering.\n */\n renderNode?: (token: Token, context: RenderNodeContext) => Renderable | undefined | null\n /**\n * Internal only.\n * - \"coalesced\": combine ordinary markdown into larger render blocks.\n * - \"top-level\": preserve top-level markdown blocks as separate render blocks.\n */\n internalBlockMode?: \"coalesced\" | \"top-level\"\n}\n\nexport interface RenderNodeContext {\n syntaxStyle: SyntaxStyle\n conceal: boolean\n concealCode: boolean\n treeSitterClient?: TreeSitterClient\n /** Creates default renderable for this token */\n defaultRender: () => Renderable | null\n}\n\nexport type MarkdownCodeBlockRenderer = (\n token: Tokens.Code,\n context: RenderNodeContext,\n) => Renderable | undefined | null\n\nexport type MarkdownCodeBlockRendererMap =\n | ReadonlyMap<string, MarkdownCodeBlockRenderer>\n | Readonly<Record<string, MarkdownCodeBlockRenderer>>\n\ntype MarkdownRenderNode = NonNullable<MarkdownOptions[\"renderNode\"]> & {\n codeBlockOnly?: boolean\n}\n\nfunction normalizeMarkdownCodeBlockRenderers(\n renderers: MarkdownCodeBlockRendererMap,\n): ReadonlyMap<string, MarkdownCodeBlockRenderer> {\n const rendererMap = new Map<string, MarkdownCodeBlockRenderer>()\n const maybeMap = renderers as Partial<ReadonlyMap<string, MarkdownCodeBlockRenderer>>\n\n if (typeof maybeMap.forEach === \"function\") {\n maybeMap.forEach((renderer, language) => {\n rendererMap.set(language, renderer)\n })\n return rendererMap\n }\n\n const rendererRecord = renderers as Readonly<Record<string, MarkdownCodeBlockRenderer>>\n for (const [language, renderer] of Object.entries(rendererRecord)) {\n rendererMap.set(language, renderer)\n }\n\n return rendererMap\n}\n\nexport function createMarkdownCodeBlockRenderer(\n renderers: MarkdownCodeBlockRendererMap,\n): MarkdownOptions[\"renderNode\"] {\n const rendererMap = normalizeMarkdownCodeBlockRenderers(renderers)\n\n const renderNode: MarkdownRenderNode = (token, context) => {\n if (token.type !== \"code\") {\n return undefined\n }\n\n const language = infoStringToFiletype(token.lang ?? \"\")\n if (!language) return undefined\n\n return rendererMap.get(language)?.(token as Tokens.Code, context)\n }\n\n renderNode.codeBlockOnly = true\n return renderNode\n}\n\ninterface TableContentCache {\n content: TextTableContent\n cellKeys: Uint32Array[]\n}\n\ninterface CustomRenderableResult {\n renderable?: Renderable\n tableContentCache?: TableContentCache\n tracksInterBlockMargin: boolean\n canUpdateInPlace: boolean\n}\n\ninterface CustomRenderDefaultResult {\n renderable: Renderable | null | undefined\n tableContentCache?: TableContentCache\n}\n\ninterface RenderNodeResult {\n renderable?: Renderable\n defaultResult?: CustomRenderDefaultResult\n}\n\ninterface ResolvedTableRenderableOptions {\n columnWidthMode: TextTableColumnWidthMode\n columnFitter: TextTableColumnFitter\n wrapMode: \"none\" | \"char\" | \"word\"\n cellPadding: number\n cellPaddingX: number\n cellPaddingY: number\n columnGap: number\n border: boolean\n outerBorder: boolean\n showBorders: boolean\n borderStyle: BorderStyle\n borderColor: ColorInput\n selectable: boolean\n}\n\nconst TRAILING_MARKDOWN_BLOCK_BREAKS_RE = /(?:\\r?\\n){2,}$/\nconst TRAILING_MARKDOWN_BLOCK_NEWLINES_RE = /(?:\\r?\\n)+$/\n\nfunction colorsEqual(left?: RGBA, right?: RGBA): boolean {\n if (!left || !right) return left === right\n return left.equals(right)\n}\n\nexport interface BlockState {\n token: MarkedToken\n tokenRaw: string // Cache raw for comparison\n marginTop?: number\n renderable: Renderable\n tableContentCache?: TableContentCache\n tracksInterBlockMargin?: boolean\n /** Whether built-in reconciliation can update this renderable without replacing it. */\n canUpdateInPlace: boolean\n}\n\nexport type { ParseState }\n\ninterface MarkdownRenderBlock {\n token: MarkedToken\n sourceTokenEnd: number\n marginTop: number\n}\n\ninterface ListItemRenderInput {\n item: Tokens.ListItem\n marker: string\n markerWidth: number\n id: string\n}\n\nexport class MarkdownRenderable extends Renderable {\n private _content: string = \"\"\n private _syntaxStyle: SyntaxStyle\n private _fg?: RGBA\n private _bg?: RGBA\n private _conceal: boolean\n private _concealCode: boolean\n private _treeSitterClient?: TreeSitterClient\n private _tableOptions?: MarkdownTableOptions\n private _renderNode?: MarkdownOptions[\"renderNode\"]\n private _internalBlockMode: \"coalesced\" | \"top-level\"\n\n _parseState: ParseState | null = null\n private _streaming: boolean = false\n _blockStates: BlockState[] = []\n _stableBlockCount = 0\n private _styleDirty: boolean = false\n private _linkifyMarkdownChunks: OnChunksCallback = (chunks, context) =>\n detectLinks(chunks, {\n content: context.content,\n highlights: context.highlights,\n })\n\n protected _contentDefaultOptions = {\n content: \"\",\n conceal: true,\n concealCode: false,\n streaming: false,\n internalBlockMode: \"coalesced\",\n } satisfies Partial<MarkdownOptions>\n\n constructor(ctx: RenderContext, options: MarkdownOptions) {\n super(ctx, {\n ...options,\n flexDirection: \"column\",\n flexShrink: options.flexShrink ?? 0,\n })\n\n this._syntaxStyle = options.syntaxStyle\n this._fg = options.fg ? parseColor(options.fg) : undefined\n this._bg = options.bg ? parseColor(options.bg) : undefined\n this._conceal = options.conceal ?? this._contentDefaultOptions.conceal\n this._concealCode = options.concealCode ?? this._contentDefaultOptions.concealCode\n this._content = options.content ?? this._contentDefaultOptions.content\n this._treeSitterClient = options.treeSitterClient\n this._tableOptions = options.tableOptions\n this._renderNode = options.renderNode\n this._streaming = options.streaming ?? this._contentDefaultOptions.streaming\n this._internalBlockMode = options.internalBlockMode ?? this._contentDefaultOptions.internalBlockMode\n\n this.updateBlocks()\n }\n\n get content(): string {\n return this._content\n }\n\n set content(value: string) {\n if (this.isDestroyed) return\n if (this._content !== value) {\n this._content = value\n this.updateBlocks()\n this.requestRender()\n }\n }\n\n get syntaxStyle(): SyntaxStyle {\n return this._syntaxStyle\n }\n\n set syntaxStyle(value: SyntaxStyle) {\n if (this._syntaxStyle !== value) {\n this._syntaxStyle = value\n // Mark dirty - actual re-render happens in renderSelf\n this._styleDirty = true\n }\n }\n\n get fg(): RGBA | undefined {\n return this._fg\n }\n\n set fg(value: ColorInput | undefined) {\n const next = value ? parseColor(value) : undefined\n if (!colorsEqual(this._fg, next)) {\n this._fg = next\n this._styleDirty = true\n }\n }\n\n get bg(): RGBA | undefined {\n return this._bg\n }\n\n set bg(value: ColorInput | undefined) {\n const next = value ? parseColor(value) : undefined\n if (!colorsEqual(this._bg, next)) {\n this._bg = next\n this._styleDirty = true\n }\n }\n\n get conceal(): boolean {\n return this._conceal\n }\n\n set conceal(value: boolean) {\n if (this._conceal !== value) {\n this._conceal = value\n // Mark dirty - actual re-render happens in renderSelf\n this._styleDirty = true\n }\n }\n\n get concealCode(): boolean {\n return this._concealCode\n }\n\n set concealCode(value: boolean) {\n if (this._concealCode !== value) {\n this._concealCode = value\n // Mark dirty - actual re-render happens in renderSelf\n this._styleDirty = true\n }\n }\n\n get streaming(): boolean {\n return this._streaming\n }\n\n set streaming(value: boolean) {\n if (this.isDestroyed) return\n if (this._streaming !== value) {\n this._streaming = value\n this.updateBlocks(true)\n }\n }\n\n get tableOptions(): MarkdownTableOptions | undefined {\n return this._tableOptions\n }\n\n set tableOptions(value: MarkdownTableOptions | undefined) {\n this._tableOptions = value\n this.applyTableOptionsToBlocks()\n }\n\n get renderNode(): MarkdownOptions[\"renderNode\"] | undefined {\n return this._renderNode\n }\n\n set renderNode(value: MarkdownOptions[\"renderNode\"] | undefined) {\n if (this._renderNode === value) return\n this._renderNode = value\n this.clearBlockStates()\n this._parseState = null\n this.updateBlocks(true)\n this.requestRender()\n }\n\n get internalBlockMode(): \"coalesced\" | \"top-level\" {\n return this._internalBlockMode\n }\n\n set internalBlockMode(value: \"coalesced\" | \"top-level\") {\n if (this._internalBlockMode === value) return\n this._internalBlockMode = value\n this.updateBlocks(true)\n this.requestRender()\n }\n\n private getStyle(group: string): StyleDefinition | undefined {\n // The solid reconciler applies props via setters in JSX declaration order.\n // If `content` is set before `syntaxStyle`, updateBlocks() runs before\n // _syntaxStyle is initialized.\n if (!this._syntaxStyle) return undefined\n let style = this._syntaxStyle.getStyle(group)\n if (!style && group.includes(\".\")) {\n const baseName = group.split(\".\")[0]\n style = this._syntaxStyle.getStyle(baseName)\n }\n return style\n }\n\n private createChunk(text: string, group: string, link?: { url: string }): TextChunk {\n const style = this.getStyle(group) || this.getStyle(\"default\")\n return {\n __isChunk: true,\n text,\n fg: style?.fg,\n bg: style?.bg,\n attributes: style\n ? createTextAttributes({\n bold: style.bold,\n italic: style.italic,\n underline: style.underline,\n dim: style.dim,\n })\n : 0,\n link,\n }\n }\n\n private createDefaultChunk(text: string): TextChunk {\n return this.createChunk(text, \"default\")\n }\n\n private createInitialStyledText(token: MarkedToken): StyledText | undefined {\n if (!this._streaming) return undefined\n\n const chunks: TextChunk[] = []\n if (\"tokens\" in token && Array.isArray(token.tokens)) {\n this.renderInlineContent(token.tokens, chunks)\n }\n\n if (chunks.length === 0 && \"text\" in token && typeof token.text === \"string\") {\n this.renderInlineContent(Lexer.lexInline(token.text), chunks)\n }\n\n return chunks.length > 0 ? new StyledText(chunks) : undefined\n }\n\n private renderInlineContent(tokens: Token[], chunks: TextChunk[]): void {\n for (const token of tokens) {\n this.renderInlineToken(token as MarkedToken, chunks)\n }\n }\n\n private renderInlineToken(token: MarkedToken, chunks: TextChunk[]): void {\n switch (token.type) {\n case \"text\":\n chunks.push(this.createDefaultChunk(token.text))\n break\n\n case \"escape\":\n chunks.push(this.createDefaultChunk(token.text))\n break\n\n case \"codespan\":\n if (this._conceal) {\n chunks.push(this.createChunk(token.text, \"markup.raw\"))\n } else {\n chunks.push(this.createChunk(\"`\", \"markup.raw\"))\n chunks.push(this.createChunk(token.text, \"markup.raw\"))\n chunks.push(this.createChunk(\"`\", \"markup.raw\"))\n }\n break\n\n case \"strong\":\n if (!this._conceal) {\n chunks.push(this.createChunk(\"**\", \"markup.strong\"))\n }\n for (const child of token.tokens) {\n this.renderInlineTokenWithStyle(child as MarkedToken, chunks, \"markup.strong\")\n }\n if (!this._conceal) {\n chunks.push(this.createChunk(\"**\", \"markup.strong\"))\n }\n break\n\n case \"em\":\n if (!this._conceal) {\n chunks.push(this.createChunk(\"*\", \"markup.italic\"))\n }\n for (const child of token.tokens) {\n this.renderInlineTokenWithStyle(child as MarkedToken, chunks, \"markup.italic\")\n }\n if (!this._conceal) {\n chunks.push(this.createChunk(\"*\", \"markup.italic\"))\n }\n break\n\n case \"del\":\n if (!this._conceal) {\n chunks.push(this.createChunk(\"~~\", \"markup.strikethrough\"))\n }\n for (const child of token.tokens) {\n this.renderInlineTokenWithStyle(child as MarkedToken, chunks, \"markup.strikethrough\")\n }\n if (!this._conceal) {\n chunks.push(this.createChunk(\"~~\", \"markup.strikethrough\"))\n }\n break\n\n case \"link\": {\n const linkHref = { url: token.href }\n if (this._conceal) {\n for (const child of token.tokens) {\n this.renderInlineTokenWithStyle(child as MarkedToken, chunks, \"markup.link.label\", linkHref)\n }\n chunks.push(this.createChunk(\" (\", \"markup.link\", linkHref))\n chunks.push(this.createChunk(token.href, \"markup.link.url\", linkHref))\n chunks.push(this.createChunk(\")\", \"markup.link\", linkHref))\n } else {\n chunks.push(this.createChunk(\"[\", \"markup.link\", linkHref))\n for (const child of token.tokens) {\n this.renderInlineTokenWithStyle(child as MarkedToken, chunks, \"markup.link.label\", linkHref)\n }\n chunks.push(this.createChunk(\"](\", \"markup.link\", linkHref))\n chunks.push(this.createChunk(token.href, \"markup.link.url\", linkHref))\n chunks.push(this.createChunk(\")\", \"markup.link\", linkHref))\n }\n break\n }\n\n case \"image\": {\n const imageHref = { url: token.href }\n if (this._conceal) {\n chunks.push(this.createChunk(token.text || \"image\", \"markup.link.label\", imageHref))\n } else {\n chunks.push(this.createChunk(\")\n chunks.push(this.createChunk(token.href, \"markup.link.url\", imageHref))\n chunks.push(this.createChunk(\")\", \"markup.link\", imageHref))\n }\n break\n }\n\n case \"br\":\n chunks.push(this.createDefaultChunk(\"\\n\"))\n break\n\n default:\n if (\"tokens\" in token && Array.isArray(token.tokens)) {\n this.renderInlineContent(token.tokens, chunks)\n } else if (\"text\" in token && typeof token.text === \"string\") {\n chunks.push(this.createDefaultChunk(token.text))\n }\n break\n }\n }\n\n private renderInlineTokenWithStyle(\n token: MarkedToken,\n chunks: TextChunk[],\n styleGroup: string,\n link?: { url: string },\n ): void {\n switch (token.type) {\n case \"text\":\n chunks.push(this.createChunk(token.text, styleGroup, link))\n break\n\n case \"escape\":\n chunks.push(this.createChunk(token.text, styleGroup, link))\n break\n\n case \"codespan\":\n if (this._conceal) {\n chunks.push(this.createChunk(token.text, \"markup.raw\", link))\n } else {\n chunks.push(this.createChunk(\"`\", \"markup.raw\", link))\n chunks.push(this.createChunk(token.text, \"markup.raw\", link))\n chunks.push(this.createChunk(\"`\", \"markup.raw\", link))\n }\n break\n\n default:\n this.renderInlineToken(token, chunks)\n break\n }\n }\n\n private applyMargins(renderable: Renderable, marginTop: number, marginBottom: number): void {\n renderable.marginTop = marginTop\n renderable.marginBottom = marginBottom\n }\n\n private createMarkdownCodeRenderable(\n content: string,\n id: string,\n marginBottom: number = 0,\n onChunks: OnChunksCallback = this._linkifyMarkdownChunks,\n baseHighlight?: string,\n initialStyledText?: StyledText,\n ): CodeRenderable {\n return new CodeRenderable(this.ctx, {\n id,\n content,\n filetype: \"markdown\",\n syntaxStyle: this._syntaxStyle,\n fg: this._fg,\n bg: this._bg,\n conceal: this._conceal,\n drawUnstyledText: initialStyledText !== undefined,\n streaming: true,\n initialStyledText,\n baseHighlight,\n onChunks,\n treeSitterClient: this._treeSitterClient,\n width: \"100%\",\n marginBottom,\n })\n }\n\n private getBlockquoteContent(token: MarkedToken): string {\n return \"text\" in token && typeof token.text === \"string\" && token.text ? token.text : \" \"\n }\n\n private getBlockquoteBorderColor(): ColorInput {\n return this.getStyle(\"conceal\")?.fg ?? this.getStyle(\"default\")?.fg ?? this._fg ?? \"#FFFFFF\"\n }\n\n private createBlockquoteRenderable(token: MarkedToken, id: string, marginBottom: number = 0): BoxRenderable {\n const renderable = new BoxRenderable(this.ctx, {\n id,\n width: \"100%\",\n border: [\"left\"],\n borderColor: this.getBlockquoteBorderColor(),\n paddingLeft: 1,\n flexShrink: 0,\n marginBottom,\n })\n\n renderable.add(\n this.createMarkdownCodeRenderable(\n this.getBlockquoteContent(token),\n `${id}-content`,\n 0,\n this._linkifyMarkdownChunks,\n \"markup.quote\",\n ),\n )\n\n return renderable\n }\n\n private createListRenderable(token: Tokens.List, id: string, marginBottom: number = 0): BoxRenderable {\n const list = new BoxRenderable(this.ctx, {\n id,\n width: \"100%\",\n flexDirection: \"column\",\n flexShrink: 0,\n marginBottom,\n })\n\n for (const item of this.getListItemInputs(token, id)) {\n list.add(this.createListItemRenderable(item))\n }\n\n return list\n }\n\n private getListItemInputs(token: Tokens.List, id: string): ListItemRenderInput[] {\n const items = token.items ?? []\n const start = token.start === \"\" || token.start === undefined || token.start === null ? 1 : Number(token.start)\n const markerWidth = Math.max(1, ...items.map((_, index) => (token.ordered ? `${start + index}.` : \"-\").length))\n\n return items.map((item, index) => ({\n item,\n marker: token.ordered ? `${start + index}.` : \"-\",\n markerWidth,\n id: `${id}-item-${index}`,\n }))\n }\n\n private applyListRenderable(\n renderable: Renderable,\n token: Tokens.List,\n previousToken: Tokens.List | undefined,\n id: string,\n marginBottom: number = 0,\n ): boolean {\n if (!(renderable instanceof BoxRenderable)) return false\n\n renderable.marginBottom = marginBottom\n\n const inputs = this.getListItemInputs(token, id)\n const previousItems = previousToken?.items ?? []\n const rows = renderable.getChildren()\n\n for (let index = 0; index < inputs.length; index += 1) {\n const input = inputs[index]\n const existing = rows[index]\n\n if (existing instanceof BoxRenderable && this.applyListItemRenderable(existing, input, previousItems[index])) {\n continue\n }\n\n existing?.destroyRecursively()\n renderable.add(this.createListItemRenderable(input), index)\n }\n\n for (let index = rows.length - 1; index >= inputs.length; index -= 1) {\n rows[index]?.destroyRecursively()\n }\n\n return true\n }\n\n private createListItemRenderable(input: ListItemRenderInput): BoxRenderable {\n const row = new BoxRenderable(this.ctx, {\n id: input.id,\n width: \"100%\",\n flexDirection: \"row\",\n flexShrink: 0,\n marginBottom: /\\n[ \\t]*\\n$/.test(input.item.raw) ? 1 : 0,\n })\n row.add(\n new TextRenderable(this.ctx, {\n id: `${input.id}-marker`,\n content: new StyledText([this.createChunk(input.marker.padStart(input.markerWidth) + \" \", \"markup.list\")]),\n width: input.markerWidth + 1,\n flexShrink: 0,\n }),\n )\n\n const content = new BoxRenderable(this.ctx, {\n id: `${input.id}-content`,\n flexDirection: \"column\",\n flexGrow: 1,\n flexShrink: 1,\n })\n row.add(content)\n\n let pendingMarginTop = 0\n for (let index = 0; index < input.item.tokens.length; index += 1) {\n const child = input.item.tokens[index] as MarkedToken | undefined\n if (!child) continue\n if (child.type === \"checkbox\") continue\n if (child.type === \"space\") {\n pendingMarginTop = Math.max(pendingMarginTop, 1)\n continue\n }\n const renderable = this.createListChildRenderable(child, `${input.id}-child-${index}`)\n if (!renderable) continue\n renderable.marginTop = child.type === \"list\" ? 0 : pendingMarginTop\n pendingMarginTop = 0\n content.add(renderable)\n }\n\n return row\n }\n\n private applyListItemRenderable(\n row: BoxRenderable,\n input: ListItemRenderInput,\n previousItem: Tokens.ListItem | undefined,\n ): boolean {\n this.applyListItemMarker(row, input)\n\n const content = row.getChildren()[1]\n if (!(content instanceof BoxRenderable)) return false\n\n if (previousItem && previousItem.raw === input.item.raw) {\n return true\n }\n\n return this.applyListItemChildren(content, input.item, previousItem, input.id)\n }\n\n private applyListItemChildren(\n content: BoxRenderable,\n item: Tokens.ListItem,\n previousItem: Tokens.ListItem | undefined,\n id: string,\n ): boolean {\n const previousTokens = previousItem ? this.getRenderableListItemTokens(previousItem) : []\n const children = content.getChildren()\n let childIndex = 0\n let pendingMarginTop = 0\n\n for (let tokenIndex = 0; tokenIndex < item.tokens.length; tokenIndex += 1) {\n const token = item.tokens[tokenIndex] as MarkedToken | undefined\n if (!token) continue\n if (token.type === \"checkbox\") continue\n if (token.type === \"space\") {\n pendingMarginTop = Math.max(pendingMarginTop, 1)\n continue\n }\n\n const existing = children[childIndex]\n const childId = `${id}-child-${tokenIndex}`\n\n const marginTop = token.type === \"list\" ? 0 : pendingMarginTop\n pendingMarginTop = 0\n\n if (!existing) {\n const renderable = this.createListChildRenderable(token, childId)\n if (!renderable) return false\n renderable.marginTop = marginTop\n content.add(renderable, childIndex)\n childIndex += 1\n continue\n }\n\n if (!this.applyListChildRenderable(existing, token, previousTokens[childIndex], childId)) {\n return false\n }\n existing.marginTop = marginTop\n childIndex += 1\n }\n\n this.destroyListItemChildrenAfter(content, childIndex)\n return true\n }\n\n private getRenderableListItemTokens(item: Tokens.ListItem): MarkedToken[] {\n const tokens: MarkedToken[] = []\n\n for (const token of item.tokens as MarkedToken[]) {\n if (token.type === \"checkbox\" || token.type === \"space\") continue\n tokens.push(token)\n }\n\n return tokens\n }\n\n private applyListChildRenderable(\n renderable: Renderable,\n token: MarkedToken,\n previousToken: MarkedToken | undefined,\n id: string,\n ): boolean {\n if ((token.type === \"text\" || token.type === \"paragraph\") && renderable instanceof CodeRenderable) {\n this.applyMarkdownCodeRenderable(renderable, this.normalizeScrollbackMarkdownBlockRaw(token.raw), 0)\n return true\n }\n\n if (token.type === \"list\" && renderable instanceof BoxRenderable) {\n return this.applyListRenderable(renderable, token as Tokens.List, previousToken as Tokens.List | undefined, id)\n }\n\n if (token.type === \"code\" && renderable instanceof CodeRenderable) {\n this.applyCodeBlockRenderable(renderable, token as Tokens.Code, 0)\n return true\n }\n\n return previousToken?.raw === token.raw\n }\n\n private destroyListItemChildrenAfter(content: BoxRenderable, index: number): void {\n const children = content.getChildren()\n for (let i = children.length - 1; i >= index; i -= 1) {\n children[i]?.destroyRecursively()\n }\n }\n\n private applyListItemMarker(row: BoxRenderable, input: ListItemRenderInput): void {\n const marker = row.getChildren()[0]\n if (!(marker instanceof TextRenderable)) return\n const marginBottom = /\\n[ \\t]*\\n$/.test(input.item.raw) ? 1 : 0\n const markerWidth = input.markerWidth + 1\n const markerText = input.marker.padStart(input.markerWidth) + \" \"\n\n if (row.marginBottom !== marginBottom) row.marginBottom = marginBottom\n if (marker.width !== markerWidth) marker.width = markerWidth\n if (marker.chunks[0]?.text !== markerText) {\n marker.content = new StyledText([this.createChunk(markerText, \"markup.list\")])\n }\n }\n\n private createListChildRenderable(token: MarkedToken, id: string): Renderable | null {\n if (token.type === \"text\" || token.type === \"paragraph\") {\n return this.createMarkdownCodeRenderable(\n this.normalizeScrollbackMarkdownBlockRaw(token.raw),\n id,\n 0,\n this._linkifyMarkdownChunks,\n undefined,\n this.createInitialStyledText(token),\n )\n }\n if (token.type === \"list\") return this.createListRenderable(token as Tokens.List, id)\n if (token.type === \"code\") return this.createCodeRenderable(token as Tokens.Code, id)\n if (token.type === \"blockquote\") return this.createBlockquoteRenderable(token, id)\n if (token.type === \"hr\") return this.createHorizontalRuleRenderable(id)\n if (token.type === \"table\") return this.createTableBlock(token as Tokens.Table, id).renderable\n return token.raw\n ? this.createMarkdownCodeRenderable(\n token.raw,\n id,\n 0,\n this._linkifyMarkdownChunks,\n undefined,\n this.createInitialStyledText(token),\n )\n : null\n }\n\n private createHorizontalRuleRenderable(id: string, marginBottom: number = 0): BoxRenderable {\n return new BoxRenderable(this.ctx, {\n id,\n width: \"100%\",\n height: 1,\n border: [\"top\"],\n borderColor: this.getStyle(\"conceal\")?.fg ?? this._fg ?? \"#888888\",\n flexShrink: 0,\n marginBottom,\n })\n }\n\n private createCodeRenderable(token: Tokens.Code, id: string, marginBottom: number = 0): Renderable {\n return new CodeRenderable(this.ctx, {\n id,\n content: token.text,\n filetype: infoStringToFiletype(token.lang ?? \"\"),\n syntaxStyle: this._syntaxStyle,\n fg: this._fg,\n bg: this._bg,\n conceal: this._concealCode,\n drawUnstyledText: !this._streaming,\n streaming: this._streaming,\n treeSitterClient: this._treeSitterClient,\n width: \"100%\",\n marginBottom,\n })\n }\n\n private applyMarkdownCodeRenderable(\n renderable: CodeRenderable,\n content: string,\n marginBottom: number,\n baseHighlight?: string,\n initialStyledText?: StyledText,\n ): void {\n renderable.initialStyledText = initialStyledText\n renderable.filetype = \"markdown\"\n renderable.syntaxStyle = this._syntaxStyle\n renderable.fg = this._fg\n renderable.bg = this._bg\n renderable.conceal = this._conceal\n renderable.drawUnstyledText = initialStyledText !== undefined\n renderable.streaming = true\n renderable.baseHighlight = baseHighlight\n renderable.content = content\n renderable.marginBottom = marginBottom\n }\n\n private applyBlockquoteRenderable(renderable: Renderable, token: MarkedToken, marginBottom: number): void {\n if (!(renderable instanceof BoxRenderable)) return\n\n renderable.borderColor = this.getBlockquoteBorderColor()\n renderable.marginBottom = marginBottom\n\n const child = renderable.getChildren()[0]\n if (child instanceof CodeRenderable) {\n this.applyMarkdownCodeRenderable(child, this.getBlockquoteContent(token), 0, \"markup.quote\")\n return\n }\n\n for (const existing of renderable.getChildren()) {\n existing.destroyRecursively()\n }\n renderable.add(\n this.createMarkdownCodeRenderable(\n this.getBlockquoteContent(token),\n `${renderable.id}-content`,\n 0,\n this._linkifyMarkdownChunks,\n \"markup.quote\",\n ),\n )\n }\n\n private applyCodeBlockRenderable(renderable: Renderable, token: Tokens.Code, marginBottom: number): void {\n if (!(renderable instanceof CodeRenderable)) return\n\n renderable.filetype = infoStringToFiletype(token.lang ?? \"\")\n renderable.syntaxStyle = this._syntaxStyle\n renderable.fg = this._fg\n renderable.bg = this._bg\n renderable.conceal = this._concealCode\n renderable.drawUnstyledText = !this._streaming\n renderable.streaming = this._streaming\n renderable.content = token.text\n renderable.marginBottom = marginBottom\n }\n\n private shouldRenderSeparately(token: MarkedToken): boolean {\n return token.type === \"code\" || token.type === \"table\" || token.type === \"blockquote\" || token.type === \"hr\"\n }\n\n private getInterBlockMargin(token: MarkedToken, nextToken: MarkedToken | undefined): number {\n if (!nextToken) return 0\n if (this.shouldRenderSeparately(token)) return 1\n if (!this.shouldRenderSeparately(nextToken)) return 0\n return TRAILING_MARKDOWN_BLOCK_NEWLINES_RE.test(token.raw) ? 0 : 1\n }\n\n private applyInterBlockMargin(state: BlockState, token: MarkedToken, nextToken: MarkedToken | undefined): void {\n if (state.tracksInterBlockMargin === false) return\n state.renderable.marginBottom = this.getInterBlockMargin(token, nextToken)\n }\n\n private createMarkdownBlockToken(raw: string): MarkedToken {\n return {\n type: \"paragraph\",\n raw,\n text: raw,\n tokens: [],\n } as MarkedToken\n }\n\n private normalizeMarkdownBlockRaw(raw: string): string {\n return raw.replace(TRAILING_MARKDOWN_BLOCK_BREAKS_RE, \"\\n\")\n }\n\n private normalizeScrollbackMarkdownBlockRaw(raw: string): string {\n return raw.replace(TRAILING_MARKDOWN_BLOCK_NEWLINES_RE, \"\")\n }\n\n private isCodeBlockOnlyRenderer(): boolean {\n return (this._renderNode as MarkdownRenderNode | undefined)?.codeBlockOnly === true\n }\n\n private buildRenderableTokens(tokens: MarkedToken[]): MarkedToken[] {\n if (this._renderNode && !this.isCodeBlockOnlyRenderer()) {\n return tokens.filter((token) => token.type !== \"space\")\n }\n\n const renderTokens: MarkedToken[] = []\n let markdownRaw = \"\"\n\n const flushMarkdownRaw = (): void => {\n if (markdownRaw.length === 0) return\n const normalizedRaw = this.normalizeMarkdownBlockRaw(markdownRaw)\n if (normalizedRaw.length > 0) {\n renderTokens.push(this.createMarkdownBlockToken(normalizedRaw))\n }\n markdownRaw = \"\"\n }\n\n for (let i = 0; i < tokens.length; i += 1) {\n const token = tokens[i]\n\n if (token.type === \"space\") {\n if (markdownRaw.length === 0) {\n continue\n }\n\n let nextIndex = i + 1\n while (nextIndex < tokens.length && tokens[nextIndex].type === \"space\") {\n nextIndex += 1\n }\n\n const nextToken = tokens[nextIndex]\n if (nextToken && !this.shouldRenderSeparately(nextToken)) {\n markdownRaw += token.raw\n }\n continue\n }\n\n if (this.shouldRenderSeparately(token)) {\n flushMarkdownRaw()\n renderTokens.push(token)\n continue\n }\n\n markdownRaw += token.raw\n }\n\n flushMarkdownRaw()\n\n return renderTokens\n }\n\n private buildTopLevelRenderBlocks(tokens: MarkedToken[]): MarkdownRenderBlock[] {\n const blocks: MarkdownRenderBlock[] = []\n let gapBefore = \"\"\n\n for (let i = 0; i < tokens.length; i += 1) {\n const token = tokens[i]\n if (token.type === \"space\") {\n gapBefore += token.raw\n continue\n }\n\n const prev = blocks[blocks.length - 1]\n const marginTop = prev && this.shouldAddTopLevelMargin(prev.token, token, gapBefore) ? 1 : 0\n\n blocks.push({\n token,\n sourceTokenEnd: i + 1,\n marginTop,\n })\n gapBefore = \"\"\n }\n\n return blocks\n }\n\n private shouldAddTopLevelMargin(prev: MarkedToken, current: MarkedToken, gapBefore: string): boolean {\n if (this.isSeparatedTopLevelBlock(prev) || this.isSeparatedTopLevelBlock(current)) return true\n if (prev.type !== \"paragraph\" || current.type !== \"paragraph\") return false\n return TRAILING_MARKDOWN_BLOCK_BREAKS_RE.test(prev.raw + gapBefore)\n }\n\n private isSeparatedTopLevelBlock(token: MarkedToken): boolean {\n return token.type === \"heading\" || token.type === \"list\" || this.shouldRenderSeparately(token)\n }\n\n private getTableRowsToRender(table: Tokens.Table): Tokens.TableCell[][] {\n return table.rows\n }\n\n private hashString(value: string, seed: number): number {\n let hash = seed >>> 0\n for (let i = 0; i < value.length; i += 1) {\n hash ^= value.charCodeAt(i)\n hash = Math.imul(hash, 16777619)\n }\n return hash >>> 0\n }\n\n private hashTableToken(token: MarkedToken, seed: number, depth: number = 0): number {\n let hash = this.hashString(token.type, seed)\n\n if (\"raw\" in token && typeof token.raw === \"string\") {\n return this.hashString(token.raw, hash)\n }\n\n if (\"text\" in token && typeof token.text === \"string\") {\n hash = this.hashString(token.text, hash)\n }\n\n if (depth < 2 && \"tokens\" in token && Array.isArray(token.tokens)) {\n for (const child of token.tokens) {\n hash = this.hashTableToken(child as MarkedToken, hash, depth + 1)\n }\n }\n\n return hash >>> 0\n }\n\n private getTableCellKey(cell: Tokens.TableCell | undefined, isHeader: boolean): number {\n const seed = isHeader ? 2902232141 : 1371922141\n if (!cell) {\n return seed\n }\n\n if (typeof cell.text === \"string\") {\n return this.hashString(cell.text, seed)\n }\n\n if (Array.isArray(cell.tokens) && cell.tokens.length > 0) {\n let hash = seed ^ cell.tokens.length\n for (const token of cell.tokens) {\n hash = this.hashTableToken(token as MarkedToken, hash)\n }\n return hash >>> 0\n }\n\n return (seed ^ 2654435769) >>> 0\n }\n\n private createTableDataCellChunks(cell: Tokens.TableCell | undefined): TextChunk[] {\n const chunks: TextChunk[] = []\n if (cell) {\n this.renderInlineContent(cell.tokens, chunks)\n }\n return chunks.length > 0 ? chunks : [this.createDefaultChunk(\" \")]\n }\n\n private createTableHeaderCellChunks(cell: Tokens.TableCell): TextChunk[] {\n const chunks: TextChunk[] = []\n this.renderInlineContent(cell.tokens, chunks)\n\n const baseChunks = chunks.length > 0 ? chunks : [this.createDefaultChunk(\" \")]\n const headingStyle = this.getStyle(\"markup.heading\") || this.getStyle(\"default\")\n if (!headingStyle) {\n return baseChunks\n }\n\n const headingAttributes = createTextAttributes({\n bold: headingStyle.bold,\n italic: headingStyle.italic,\n underline: headingStyle.underline,\n dim: headingStyle.dim,\n })\n\n return baseChunks.map((chunk) => ({\n ...chunk,\n fg: headingStyle.fg ?? chunk.fg,\n bg: headingStyle.bg ?? chunk.bg,\n attributes: headingAttributes,\n }))\n }\n\n private buildTableContentCache(\n table: Tokens.Table,\n previous?: TableContentCache,\n forceRegenerate: boolean = false,\n ): { cache: TableContentCache | null; changed: boolean } {\n const colCount = table.header.length\n const rowsToRender = this.getTableRowsToRender(table)\n if (colCount === 0 || rowsToRender.length === 0) {\n return { cache: null, changed: previous !== undefined }\n }\n\n const content: TextTableContent = []\n const cellKeys: Uint32Array[] = []\n const totalRows = rowsToRender.length + 1\n\n let changed = forceRegenerate || !previous\n\n for (let rowIndex = 0; rowIndex < totalRows; rowIndex += 1) {\n const rowContent: TextTableCellContent[] = []\n const rowKeys = new Uint32Array(colCount)\n\n for (let colIndex = 0; colIndex < colCount; colIndex += 1) {\n const isHeader = rowIndex === 0\n const cell = isHeader ? table.header[colIndex] : rowsToRender[rowIndex - 1]?.[colIndex]\n const cellKey = this.getTableCellKey(cell, isHeader)\n rowKeys[colIndex] = cellKey\n\n const previousCellKey = previous?.cellKeys[rowIndex]?.[colIndex]\n const previousCellContent = previous?.content[rowIndex]?.[colIndex]\n\n if (!forceRegenerate && previousCellKey === cellKey && Array.isArray(previousCellContent)) {\n rowContent.push(previousCellContent)\n continue\n }\n\n changed = true\n rowContent.push(\n isHeader ? this.createTableHeaderCellChunks(table.header[colIndex]) : this.createTableDataCellChunks(cell),\n )\n }\n\n content.push(rowContent)\n cellKeys.push(rowKeys)\n }\n\n if (previous && !changed) {\n if (previous.content.length !== content.length) {\n changed = true\n } else {\n for (let rowIndex = 0; rowIndex < content.length; rowIndex += 1) {\n if ((previous.content[rowIndex]?.length ?? 0) !== content[rowIndex].length) {\n changed = true\n break\n }\n }\n }\n }\n\n return {\n cache: {\n content,\n cellKeys,\n },\n changed,\n }\n }\n\n private resolveTableStyle(options: MarkdownTableOptions | undefined = this._tableOptions): MarkdownTableStyle {\n if (options?.style === \"columns\") {\n return \"columns\"\n }\n\n if (options?.style === \"grid\") {\n return \"grid\"\n }\n\n return this._internalBlockMode === \"top-level\" ? \"columns\" : \"grid\"\n }\n\n private usesBorderlessColumnSpacing(options: MarkdownTableOptions | undefined = this._tableOptions): boolean {\n const style = this.resolveTableStyle(options)\n const borders = options?.borders ?? style === \"grid\"\n\n return style === \"columns\" && !borders\n }\n\n private resolveTableRenderableOptions(): ResolvedTableRenderableOptions {\n const style = this.resolveTableStyle()\n const borders = this._tableOptions?.borders ?? style === \"grid\"\n\n return {\n columnWidthMode: this._tableOptions?.widthMode ?? (style === \"columns\" ? \"content\" : \"full\"),\n columnFitter: this._tableOptions?.columnFitter ?? \"proportional\",\n wrapMode: this._tableOptions?.wrapMode ?? \"word\",\n cellPadding: this._tableOptions?.cellPadding ?? 0,\n cellPaddingX: this._tableOptions?.cellPaddingX ?? this._tableOptions?.cellPadding ?? 0,\n cellPaddingY: this._tableOptions?.cellPaddingY ?? this._tableOptions?.cellPadding ?? 0,\n columnGap: this.usesBorderlessColumnSpacing() ? 2 : 0,\n border: borders,\n outerBorder: this._tableOptions?.outerBorder ?? borders,\n showBorders: borders,\n borderStyle: this._tableOptions?.borderStyle ?? \"single\",\n borderColor: this._tableOptions?.borderColor ?? this.getStyle(\"conceal\")?.fg ?? \"#888888\",\n selectable: this._tableOptions?.selectable ?? true,\n }\n }\n\n private applyTableRenderableOptions(\n tableRenderable: TextTableRenderable,\n options: ResolvedTableRenderableOptions,\n ): void {\n tableRenderable.columnWidthMode = options.columnWidthMode\n tableRenderable.columnFitter = options.columnFitter\n tableRenderable.wrapMode = options.wrapMode\n tableRenderable.cellPaddingX = options.cellPaddingX\n tableRenderable.cellPaddingY = options.cellPaddingY\n tableRenderable.columnGap = options.columnGap\n tableRenderable.border = options.border\n tableRenderable.outerBorder = options.outerBorder\n tableRenderable.showBorders = options.showBorders\n tableRenderable.borderStyle = options.borderStyle\n tableRenderable.borderColor = options.borderColor\n tableRenderable.selectable = options.selectable\n }\n\n private applyTableOptionsToBlocks(): void {\n const options = this.resolveTableRenderableOptions()\n let updated = false\n\n for (const state of this._blockStates) {\n if (state.renderable instanceof TextTableRenderable) {\n this.applyTableRenderableOptions(state.renderable, options)\n updated = true\n }\n }\n\n if (updated) {\n this.requestRender()\n }\n }\n\n private createTextTableRenderable(\n content: TextTableContent,\n id: string,\n marginBottom: number = 0,\n ): TextTableRenderable {\n const options = this.resolveTableRenderableOptions()\n return new TextTableRenderable(this.ctx, {\n id,\n content,\n width: \"100%\",\n marginBottom,\n columnWidthMode: options.columnWidthMode,\n columnFitter: options.columnFitter,\n wrapMode: options.wrapMode,\n cellPadding: options.cellPadding,\n cellPaddingX: options.cellPaddingX,\n cellPaddingY: options.cellPaddingY,\n columnGap: options.columnGap,\n border: options.border,\n outerBorder: options.outerBorder,\n showBorders: options.showBorders,\n borderStyle: options.borderStyle,\n borderColor: options.borderColor,\n selectable: options.selectable,\n })\n }\n\n private createTableBlock(\n table: Tokens.Table,\n id: string,\n marginBottom: number = 0,\n previousCache?: TableContentCache,\n forceRegenerate: boolean = false,\n ): { renderable: Renderable; tableContentCache?: TableContentCache } {\n const { cache } = this.buildTableContentCache(table, previousCache, forceRegenerate)\n\n if (!cache) {\n return {\n renderable: this.createMarkdownCodeRenderable(table.raw, id, marginBottom),\n }\n }\n\n return {\n renderable: this.createTextTableRenderable(cache.content, id, marginBottom),\n tableContentCache: cache,\n }\n }\n\n private getStableBlockCount(blocks: MarkdownRenderBlock[], stableTokenCount: number): number {\n if (this._internalBlockMode !== \"top-level\") {\n return 0\n }\n\n let stableBlockCount = 0\n for (const block of blocks) {\n if (block.sourceTokenEnd <= stableTokenCount) {\n stableBlockCount += 1\n continue\n }\n\n break\n }\n\n return stableBlockCount\n }\n\n private syncTopLevelBlockState(\n state: BlockState,\n block: MarkdownRenderBlock,\n tableContentCache: TableContentCache | undefined = state.tableContentCache,\n ): void {\n state.token = block.token\n state.tokenRaw = block.token.raw\n state.marginTop = block.marginTop\n state.tableContentCache = tableContentCache\n }\n\n private getTopLevelBlockRaw(token: MarkedToken): string | undefined {\n if (!token.raw) {\n return undefined\n }\n\n return this.shouldRenderSeparately(token) ? token.raw : this.normalizeScrollbackMarkdownBlockRaw(token.raw)\n }\n\n private createTopLevelDefaultRenderable(\n block: MarkdownRenderBlock,\n index: number,\n ): { renderable: Renderable | undefined; tableContentCache?: TableContentCache; canUpdateInPlace: boolean } {\n const { token, marginTop } = block\n const id = `${this.id}-block-${index}`\n\n if (token.type === \"code\") {\n const renderable = this.createCodeRenderable(token, id)\n renderable.marginTop = marginTop\n return { renderable, canUpdateInPlace: true }\n }\n\n if (token.type === \"table\") {\n const next = this.createTableBlock(token, id)\n next.renderable.marginTop = marginTop\n return { ...next, canUpdateInPlace: true }\n }\n\n if (token.type === \"blockquote\") {\n const renderable = this.createBlockquoteRenderable(token, id)\n renderable.marginTop = marginTop\n return { renderable, canUpdateInPlace: true }\n }\n\n if (token.type === \"list\") {\n const renderable = this.createListRenderable(token, id)\n renderable.marginTop = marginTop\n return { renderable, canUpdateInPlace: true }\n }\n\n if (token.type === \"hr\") {\n const renderable = this.createHorizontalRuleRenderable(id)\n renderable.marginTop = marginTop\n return { renderable, canUpdateInPlace: true }\n }\n\n const markdownRaw = this.getTopLevelBlockRaw(token)\n if (!markdownRaw) {\n return { renderable: undefined, canUpdateInPlace: true }\n }\n\n const renderable = this.createMarkdownCodeRenderable(\n markdownRaw,\n id,\n 0,\n this._linkifyMarkdownChunks,\n undefined,\n this.createInitialStyledText(token),\n )\n renderable.marginTop = marginTop\n return { renderable, canUpdateInPlace: true }\n }\n\n private createTopLevelRenderable(\n block: MarkdownRenderBlock,\n index: number,\n ): { renderable: Renderable | undefined; tableContentCache?: TableContentCache; canUpdateInPlace: boolean } {\n if (!this._renderNode) {\n return this.createTopLevelDefaultRenderable(block, index)\n }\n\n const custom = this.createTopLevelCustomRenderable(block, index)\n if (!custom.renderable) return this.createTopLevelDefaultRenderable(block, index)\n\n const marginTop =\n typeof custom.renderable.marginTop === \"number\"\n ? Math.max(custom.renderable.marginTop, block.marginTop)\n : block.marginTop\n this.applyMargins(custom.renderable, marginTop, 0)\n\n return {\n renderable: custom.renderable,\n tableContentCache: custom.tableContentCache,\n canUpdateInPlace: custom.canUpdateInPlace,\n }\n }\n\n private createDefaultRenderable(token: MarkedToken, index: number, nextToken?: MarkedToken): Renderable | null {\n const id = `${this.id}-block-${index}`\n const marginBottom = this.getInterBlockMargin(token, nextToken)\n\n if (token.type === \"code\") {\n return this.createCodeRenderable(token, id, marginBottom)\n }\n\n if (token.type === \"blockquote\") {\n return this.createBlockquoteRenderable(token, id, marginBottom)\n }\n\n if (token.type === \"list\") {\n return this.createListRenderable(token as Tokens.List, id, marginBottom)\n }\n\n if (token.type === \"hr\") {\n return this.createHorizontalRuleRenderable(id, marginBottom)\n }\n\n if (token.type === \"table\") {\n return this.createTableBlock(token, id, marginBottom).renderable\n }\n\n if (token.type === \"space\") {\n return null\n }\n\n if (!token.raw) {\n return null\n }\n\n return this.createMarkdownCodeRenderable(\n token.raw,\n id,\n marginBottom,\n this._linkifyMarkdownChunks,\n undefined,\n this.createInitialStyledText(token),\n )\n }\n\n private createCustomRenderable(\n token: MarkedToken,\n index: number,\n nextToken: MarkedToken | undefined,\n ): CustomRenderableResult {\n const custom = this.renderCustomNode(token, () => {\n return { renderable: this.createDefaultRenderable(token, index, nextToken) }\n })\n if (!custom.renderable) {\n return { tracksInterBlockMargin: true, canUpdateInPlace: true }\n }\n\n const canUpdateInPlace = custom.renderable === custom.defaultResult?.renderable\n\n return {\n renderable: custom.renderable,\n tracksInterBlockMargin: canUpdateInPlace,\n canUpdateInPlace,\n }\n }\n\n private createTopLevelCustomRenderable(block: MarkdownRenderBlock, index: number): CustomRenderableResult {\n const custom = this.renderCustomNode(block.token, () => {\n return this.createTopLevelDefaultRenderable(block, index)\n })\n if (!custom.renderable) {\n return { tracksInterBlockMargin: true, canUpdateInPlace: true }\n }\n\n const canUpdateInPlace = custom.renderable === custom.defaultResult?.renderable\n\n return {\n renderable: custom.renderable,\n tableContentCache: canUpdateInPlace ? custom.defaultResult?.tableContentCache : undefined,\n tracksInterBlockMargin: canUpdateInPlace,\n canUpdateInPlace,\n }\n }\n\n private renderCustomNode(token: MarkedToken, createDefault: () => CustomRenderDefaultResult): RenderNodeResult {\n if (!this._renderNode) return {}\n\n let defaultResult: CustomRenderDefaultResult | undefined\n const custom = this._renderNode(token, {\n syntaxStyle: this._syntaxStyle,\n conceal: this._conceal,\n concealCode: this._concealCode,\n treeSitterClient: this._treeSitterClient,\n defaultRender: () => {\n defaultResult = createDefault()\n return defaultResult.renderable ?? null\n },\n })\n\n this.destroyUnusedDefaultRenderable(defaultResult?.renderable, custom ?? undefined)\n\n return custom ? { renderable: custom, defaultResult } : {}\n }\n\n private destroyUnusedDefaultRenderable(renderable: Renderable | null | undefined, usedRenderable?: Renderable): void {\n if (!renderable || renderable === usedRenderable || renderable.parent) return\n renderable.destroyRecursively()\n }\n\n private updateBlockRenderable(\n state: BlockState,\n token: MarkedToken,\n index: number,\n nextToken: MarkedToken | undefined,\n forceListRefresh: boolean = false,\n ): void {\n const marginBottom = this.getInterBlockMargin(token, nextToken)\n\n if (token.type === \"code\") {\n this.applyCodeBlockRenderable(state.renderable, token as Tokens.Code, marginBottom)\n return\n }\n\n if (token.type === \"blockquote\") {\n this.applyBlockquoteRenderable(state.renderable, token, marginBottom)\n return\n }\n\n if (token.type === \"list\") {\n if (\n !this.applyListRenderable(\n state.renderable,\n token as Tokens.List,\n forceListRefresh ? undefined : (state.token as Tokens.List),\n `${this.id}-block-${index}`,\n marginBottom,\n )\n ) {\n state.renderable.destroyRecursively()\n state.renderable = this.createListRenderable(token as Tokens.List, `${this.id}-block-${index}`, marginBottom)\n this.add(state.renderable, index)\n }\n return\n }\n\n if (token.type === \"hr\") {\n state.renderable.marginBottom = marginBottom\n return\n }\n\n if (token.type === \"table\") {\n const tableToken = token as Tokens.Table\n const { cache, changed } = this.buildTableContentCache(tableToken, state.tableContentCache)\n\n if (!cache) {\n if (state.renderable instanceof CodeRenderable) {\n this.applyMarkdownCodeRenderable(state.renderable, tableToken.raw, marginBottom)\n state.tableContentCache = undefined\n return\n }\n\n state.renderable.destroyRecursively()\n const fallbackRenderable = this.createMarkdownCodeRenderable(\n tableToken.raw,\n `${this.id}-block-${index}`,\n marginBottom,\n )\n this.add(fallbackRenderable, index)\n state.renderable = fallbackRenderable\n state.tableContentCache = undefined\n return\n }\n\n if (state.renderable instanceof TextTableRenderable) {\n if (changed) {\n state.renderable.content = cache.content\n }\n this.applyTableRenderableOptions(state.renderable, this.resolveTableRenderableOptions())\n state.renderable.marginBottom = marginBottom\n state.tableContentCache = cache\n return\n }\n\n state.renderable.destroyRecursively()\n const tableRenderable = this.createTextTableRenderable(cache.content, `${this.id}-block-${index}`, marginBottom)\n this.add(tableRenderable, index)\n state.renderable = tableRenderable\n state.tableContentCache = cache\n return\n }\n\n if (state.renderable instanceof CodeRenderable) {\n this.applyMarkdownCodeRenderable(\n state.renderable,\n this.getTopLevelBlockRaw(token) ?? token.raw,\n marginBottom,\n undefined,\n this.createInitialStyledText(token),\n )\n return\n }\n\n state.renderable.destroyRecursively()\n const markdownRenderable = this.createMarkdownCodeRenderable(\n this.getTopLevelBlockRaw(token) ?? token.raw,\n `${this.id}-block-${index}`,\n marginBottom,\n this._linkifyMarkdownChunks,\n undefined,\n this.createInitialStyledText(token),\n )\n this.add(markdownRenderable, index)\n state.renderable = markdownRenderable\n }\n\n private updateTopLevelBlocks(tokens: MarkedToken[], forceTableRefresh: boolean): void {\n const blocks = this.buildTopLevelRenderBlocks(tokens)\n this._stableBlockCount = this.getStableBlockCount(blocks, this._parseState?.stableTokenCount ?? 0)\n\n let blockIndex = 0\n for (let i = 0; i < blocks.length; i += 1) {\n const block = blocks[i]\n const existing = this._blockStates[blockIndex]\n\n if (existing && existing.token === block.token && !forceTableRefresh) {\n if (existing.marginTop !== block.marginTop) {\n this.applyMargins(existing.renderable, block.marginTop, 0)\n }\n this.syncTopLevelBlockState(existing, block)\n blockIndex++\n continue\n }\n\n if (\n existing &&\n existing.tokenRaw === block.token.raw &&\n existing.token.type === block.token.type &&\n !forceTableRefresh\n ) {\n if (existing.marginTop !== block.marginTop) {\n this.applyMargins(existing.renderable, block.marginTop, 0)\n }\n this.syncTopLevelBlockState(existing, block)\n blockIndex++\n continue\n }\n\n if (\n existing &&\n !forceTableRefresh &&\n existing.canUpdateInPlace &&\n existing.token.type === block.token.type &&\n this.canUpdateBlockRenderable(existing.renderable, block.token)\n ) {\n if (this._renderNode) {\n const custom = this.createTopLevelCustomRenderable(block, blockIndex)\n if (custom.renderable && !custom.canUpdateInPlace) {\n const marginTop =\n typeof custom.renderable.marginTop === \"number\"\n ? Math.max(custom.renderable.marginTop, block.marginTop)\n : block.marginTop\n this.applyMargins(custom.renderable, marginTop, 0)\n if (custom.renderable !== existing.renderable) {\n existing.renderable.destroyRecursively()\n this.add(custom.renderable, blockIndex)\n }\n this._blockStates[blockIndex] = {\n token: block.token,\n tokenRaw: block.token.raw,\n marginTop: block.marginTop,\n renderable: custom.renderable,\n tableContentCache: custom.tableContentCache,\n canUpdateInPlace: custom.canUpdateInPlace,\n }\n blockIndex++\n continue\n }\n this.destroyUnusedDefaultRenderable(custom.renderable)\n }\n\n this.updateBlockRenderable(existing, block.token, blockIndex, blocks[i + 1]?.token)\n existing.renderable.marginBottom = 0\n if (existing.marginTop !== block.marginTop) {\n this.applyMargins(existing.renderable, block.marginTop, 0)\n }\n this.syncTopLevelBlockState(existing, block)\n blockIndex++\n continue\n }\n\n if (existing) {\n existing.renderable.destroyRecursively()\n }\n\n const next = this.createTopLevelRenderable(block, blockIndex)\n if (next.renderable) {\n this.add(next.renderable, blockIndex)\n this._blockStates[blockIndex] = {\n token: block.token,\n tokenRaw: block.token.raw,\n marginTop: block.marginTop,\n renderable: next.renderable,\n tableContentCache: next.tableContentCache,\n canUpdateInPlace: next.canUpdateInPlace,\n }\n }\n blockIndex++\n }\n\n while (this._blockStates.length > blockIndex) {\n const removed = this._blockStates.pop()!\n removed.renderable.destroyRecursively()\n }\n }\n\n private canUpdateBlockRenderable(renderable: Renderable, token: MarkedToken): boolean {\n if (token.type === \"code\") return renderable instanceof CodeRenderable\n\n if (token.type === \"table\") return renderable instanceof TextTableRenderable\n if (token.type === \"blockquote\") return renderable instanceof BoxRenderable\n if (token.type === \"list\") return renderable instanceof BoxRenderable\n if (token.type === \"hr\") return renderable instanceof BoxRenderable\n return renderable instanceof CodeRenderable\n }\n\n private updateBlocks(forceTableRefresh: boolean = false): void {\n if (this.isDestroyed) return\n if (!this._content) {\n this.clearBlockStates()\n this._parseState = null\n this._stableBlockCount = 0\n return\n }\n\n const trailingUnstable = this._streaming ? 2 : 0\n this._parseState = parseMarkdownIncremental(this._content, this._parseState, trailingUnstable)\n\n const tokens = this._parseState.tokens\n\n if (tokens.length === 0 && this._content.length > 0) {\n this.clearBlockStates()\n this._stableBlockCount = 0\n const fallback = this.createMarkdownCodeRenderable(this._content, `${this.id}-fallback`)\n this.add(fallback)\n this._blockStates = [\n {\n token: { type: \"text\", raw: this._content, text: this._content } as MarkedToken,\n tokenRaw: this._content,\n marginTop: 0,\n renderable: fallback,\n tracksInterBlockMargin: true,\n canUpdateInPlace: true,\n },\n ]\n return\n }\n\n if (this._internalBlockMode === \"top-level\") {\n this.updateTopLevelBlocks(tokens, forceTableRefresh)\n return\n }\n\n this._stableBlockCount = 0\n const blockTokens = this.buildRenderableTokens(tokens)\n let blockIndex = 0\n for (let i = 0; i < blockTokens.length; i++) {\n const token = blockTokens[i]\n const nextToken = blockTokens[i + 1]\n const existing = this._blockStates[blockIndex]\n\n const shouldForceRefresh = forceTableRefresh\n\n if (existing && existing.token === token) {\n if (shouldForceRefresh) {\n this.updateBlockRenderable(existing, token, blockIndex, nextToken)\n existing.tokenRaw = token.raw\n } else {\n this.applyInterBlockMargin(existing, token, nextToken)\n }\n blockIndex++\n continue\n }\n\n if (existing && existing.tokenRaw === token.raw && existing.token.type === token.type) {\n existing.token = token\n if (shouldForceRefresh) {\n this.updateBlockRenderable(existing, token, blockIndex, nextToken)\n existing.tokenRaw = token.raw\n } else {\n this.applyInterBlockMargin(existing, token, nextToken)\n }\n blockIndex++\n continue\n }\n\n if (existing && existing.canUpdateInPlace && existing.token.type === token.type) {\n const custom = this.createCustomRenderable(token, blockIndex, nextToken)\n if (custom.renderable && !custom.canUpdateInPlace) {\n if (custom.renderable !== existing.renderable) {\n existing.renderable.destroyRecursively()\n this.add(custom.renderable, blockIndex)\n }\n this._blockStates[blockIndex] = {\n token,\n tokenRaw: token.raw,\n renderable: custom.renderable,\n tracksInterBlockMargin: custom.tracksInterBlockMargin,\n canUpdateInPlace: custom.canUpdateInPlace,\n }\n blockIndex++\n continue\n }\n this.destroyUnusedDefaultRenderable(custom.renderable)\n\n this.updateBlockRenderable(existing, token, blockIndex, nextToken)\n existing.token = token\n existing.tokenRaw = token.raw\n existing.tracksInterBlockMargin = true\n blockIndex++\n continue\n }\n\n if (existing) {\n existing.renderable.destroyRecursively()\n }\n\n let renderable: Renderable | undefined\n let tableContentCache: TableContentCache | undefined\n let tracksInterBlockMargin = true\n let canUpdateInPlace = true\n\n const custom = this.createCustomRenderable(token, blockIndex, nextToken)\n if (custom.renderable) {\n renderable = custom.renderable\n tracksInterBlockMargin = custom.tracksInterBlockMargin\n canUpdateInPlace = custom.canUpdateInPlace\n }\n\n if (!renderable) {\n if (token.type === \"table\") {\n const tableBlock = this.createTableBlock(\n token,\n `${this.id}-block-${blockIndex}`,\n this.getInterBlockMargin(token, nextToken),\n )\n renderable = tableBlock.renderable\n tableContentCache = tableBlock.tableContentCache\n } else {\n renderable = this.createDefaultRenderable(token, blockIndex, nextToken) ?? undefined\n }\n }\n\n if (token.type === \"table\" && !tableContentCache && renderable instanceof TextTableRenderable) {\n const { cache } = this.buildTableContentCache(token as Tokens.Table)\n tableContentCache = cache ?? undefined\n }\n\n if (renderable) {\n this.add(renderable, blockIndex)\n this._blockStates[blockIndex] = {\n token,\n tokenRaw: token.raw,\n renderable,\n tableContentCache,\n tracksInterBlockMargin,\n canUpdateInPlace,\n }\n }\n blockIndex++\n }\n\n while (this._blockStates.length > blockIndex) {\n const removed = this._blockStates.pop()!\n removed.renderable.destroyRecursively()\n }\n }\n\n private clearBlockStates(): void {\n for (const state of this._blockStates) {\n state.renderable.destroyRecursively()\n }\n this._blockStates = []\n this._stableBlockCount = 0\n }\n\n /**\n * Re-render existing blocks without rebuilding the parse state or block structure.\n * Used when only style/conceal changes - much faster than full rebuild.\n */\n private rerenderBlocks(): void {\n if (this._internalBlockMode === \"top-level\") {\n this.updateBlocks(true)\n return\n }\n\n for (let i = 0; i < this._blockStates.length; i++) {\n const state = this._blockStates[i]\n const marginBottom = this.getInterBlockMargin(state.token, this._blockStates[i + 1]?.token)\n\n if (state.token.type === \"code\") {\n this.applyCodeBlockRenderable(state.renderable, state.token as Tokens.Code, marginBottom)\n continue\n }\n\n if (state.token.type === \"blockquote\") {\n this.applyBlockquoteRenderable(state.renderable, state.token, marginBottom)\n continue\n }\n\n if (state.token.type === \"list\") {\n this.updateBlockRenderable(state, state.token, i, this._blockStates[i + 1]?.token, true)\n continue\n }\n\n if (state.token.type === \"hr\") {\n state.renderable.marginBottom = marginBottom\n continue\n }\n\n if (state.token.type === \"table\") {\n const tableToken = state.token as Tokens.Table\n const { cache } = this.buildTableContentCache(tableToken, state.tableContentCache, true)\n\n if (!cache) {\n if (state.renderable instanceof CodeRenderable) {\n this.applyMarkdownCodeRenderable(state.renderable, tableToken.raw, marginBottom)\n } else {\n state.renderable.destroyRecursively()\n const fallbackRenderable = this.createMarkdownCodeRenderable(\n tableToken.raw,\n `${this.id}-block-${i}`,\n marginBottom,\n )\n this.add(fallbackRenderable, i)\n state.renderable = fallbackRenderable\n }\n state.tableContentCache = undefined\n continue\n }\n\n if (state.renderable instanceof TextTableRenderable) {\n state.renderable.content = cache.content\n this.applyTableRenderableOptions(state.renderable, this.resolveTableRenderableOptions())\n state.renderable.marginBottom = marginBottom\n state.tableContentCache = cache\n continue\n }\n\n state.renderable.destroyRecursively()\n const tableRenderable = this.createTextTableRenderable(cache.content, `${this.id}-block-${i}`, marginBottom)\n this.add(tableRenderable, i)\n state.renderable = tableRenderable\n state.tableContentCache = cache\n continue\n }\n\n if (state.renderable instanceof CodeRenderable) {\n this.applyMarkdownCodeRenderable(\n state.renderable,\n this.getTopLevelBlockRaw(state.token) ?? state.token.raw,\n marginBottom,\n undefined,\n this.createInitialStyledText(state.token),\n )\n continue\n }\n\n state.renderable.destroyRecursively()\n const markdownRenderable = this.createMarkdownCodeRenderable(\n this.getTopLevelBlockRaw(state.token) ?? state.token.raw,\n `${this.id}-block-${i}`,\n marginBottom,\n this._linkifyMarkdownChunks,\n undefined,\n this.createInitialStyledText(state.token),\n )\n this.add(markdownRenderable, i)\n state.renderable = markdownRenderable\n }\n }\n\n public clearCache(): void {\n this._parseState = null\n this.clearBlockStates()\n this.updateBlocks()\n this.requestRender()\n }\n\n public refreshStyles(): void {\n this._styleDirty = false\n this.rerenderBlocks()\n this.requestRender()\n }\n\n protected renderSelf(buffer: OptimizedBuffer, deltaTime: number): void {\n // Check if style/conceal changed - re-render blocks before rendering\n if (this._styleDirty) {\n this._styleDirty = false\n this.rerenderBlocks()\n }\n super.renderSelf(buffer, deltaTime)\n }\n}\n",
|
|
65
|
+
"import { Renderable, type RenderableOptions } from \"../Renderable.js\"\nimport { type RenderContext } from \"../types.js\"\nimport { SyntaxStyle, type StyleDefinition } from \"../syntax-style.js\"\nimport type { TextChunk } from \"../text-buffer.js\"\nimport { createTextAttributes } from \"../utils.js\"\nimport type { BorderStyle } from \"../lib/border.js\"\nimport { RGBA, parseColor, type ColorInput } from \"../lib/RGBA.js\"\nimport { Lexer, type MarkedToken, type Token, type Tokens } from \"marked\"\nimport { CodeRenderable, type OnChunksCallback } from \"./Code.js\"\nimport { BoxRenderable } from \"./Box.js\"\nimport { StyledText } from \"../lib/styled-text.js\"\nimport { TextRenderable } from \"./Text.js\"\nimport {\n TextTableRenderable,\n type TextTableCellContent,\n type TextTableColumnFitter,\n type TextTableColumnWidthMode,\n type TextTableContent,\n} from \"./TextTable.js\"\nimport type { TreeSitterClient } from \"../lib/tree-sitter/index.js\"\nimport { infoStringToFiletype } from \"../lib/tree-sitter/resolve-ft.js\"\nimport { parseMarkdownIncremental, type ParseState } from \"./markdown-parser.js\"\nimport type { OptimizedBuffer } from \"../buffer.js\"\nimport { detectLinks } from \"../lib/detect-links.js\"\n\nexport type MarkdownTableStyle = \"grid\" | \"columns\"\n\nexport interface MarkdownTableOptions {\n /**\n * Visual style preset for markdown tables.\n * - \"grid\": boxed table with visible borders.\n * - \"columns\": borderless columns optimized for separated block output.\n *\n * Defaults to \"columns\" in `internalBlockMode: \"top-level\"`, otherwise \"grid\".\n */\n style?: MarkdownTableStyle\n /**\n * Strategy for sizing table columns.\n * - \"content\": columns fit to intrinsic content width.\n * - \"full\": columns expand to fill available width.\n */\n widthMode?: TextTableColumnWidthMode\n /**\n * Column fitting method when shrinking constrained tables.\n */\n columnFitter?: TextTableColumnFitter\n /**\n * Wrapping strategy for table cell content.\n */\n wrapMode?: \"none\" | \"char\" | \"word\"\n /**\n * Padding applied on all sides of each table cell.\n */\n cellPadding?: number\n /**\n * Horizontal padding applied on the left and right of each table cell.\n */\n cellPaddingX?: number\n /**\n * Vertical padding applied above and below each table cell.\n */\n cellPaddingY?: number\n /**\n * Enables/disables table border rendering.\n */\n borders?: boolean\n /**\n * Overrides outer border visibility. Defaults to `borders`.\n */\n outerBorder?: boolean\n /**\n * Border style for markdown tables.\n */\n borderStyle?: BorderStyle\n /**\n * Border color for markdown tables. Defaults to conceal style color.\n */\n borderColor?: ColorInput\n /**\n * Enables/disables selection support on markdown tables.\n */\n selectable?: boolean\n}\n\nexport interface MarkdownOptions extends RenderableOptions<MarkdownRenderable> {\n content?: string\n syntaxStyle: SyntaxStyle\n fg?: ColorInput\n bg?: ColorInput\n /** Controls concealment for markdown syntax markers in markdown text blocks. */\n conceal?: boolean\n /** Controls concealment inside fenced code blocks rendered by CodeRenderable. */\n concealCode?: boolean\n treeSitterClient?: TreeSitterClient\n /**\n * Enable streaming mode for incremental content updates.\n *\n * Semantics:\n * - The trailing markdown block stays unstable while streaming is enabled.\n * - Tables render all rows produced by the markdown parser (including trailing rows).\n * - Incomplete table rows are normalized by the parser and rendered with empty cells\n * where data is missing.\n *\n * Expectations:\n * - Keep this true while chunks are still being appended.\n * - Set this to false once streaming is complete to finalize trailing token parsing.\n */\n streaming?: boolean\n /**\n * Options for internally rendered markdown tables.\n */\n tableOptions?: MarkdownTableOptions\n /**\n * Custom node renderer. Return a Renderable to override default rendering,\n * or undefined/null to use default rendering.\n */\n renderNode?: (token: Token, context: RenderNodeContext) => Renderable | undefined | null\n /**\n * Internal only.\n * - \"coalesced\": combine ordinary markdown into larger render blocks.\n * - \"top-level\": preserve top-level markdown blocks as separate render blocks.\n */\n internalBlockMode?: \"coalesced\" | \"top-level\"\n}\n\nexport interface RenderNodeContext {\n syntaxStyle: SyntaxStyle\n conceal: boolean\n concealCode: boolean\n treeSitterClient?: TreeSitterClient\n /** Creates default renderable for this token */\n defaultRender: () => Renderable | null\n}\n\nexport type MarkdownCodeBlockRenderer = (\n token: Tokens.Code,\n context: RenderNodeContext,\n) => Renderable | undefined | null\n\nexport type MarkdownCodeBlockRendererMap =\n | ReadonlyMap<string, MarkdownCodeBlockRenderer>\n | Readonly<Record<string, MarkdownCodeBlockRenderer>>\n\ntype MarkdownRenderNode = NonNullable<MarkdownOptions[\"renderNode\"]> & {\n codeBlockOnly?: boolean\n}\n\nfunction normalizeMarkdownCodeBlockRenderers(\n renderers: MarkdownCodeBlockRendererMap,\n): ReadonlyMap<string, MarkdownCodeBlockRenderer> {\n const rendererMap = new Map<string, MarkdownCodeBlockRenderer>()\n const maybeMap = renderers as Partial<ReadonlyMap<string, MarkdownCodeBlockRenderer>>\n\n if (typeof maybeMap.forEach === \"function\") {\n maybeMap.forEach((renderer, language) => {\n rendererMap.set(language, renderer)\n })\n return rendererMap\n }\n\n const rendererRecord = renderers as Readonly<Record<string, MarkdownCodeBlockRenderer>>\n for (const [language, renderer] of Object.entries(rendererRecord)) {\n rendererMap.set(language, renderer)\n }\n\n return rendererMap\n}\n\nexport function createMarkdownCodeBlockRenderer(\n renderers: MarkdownCodeBlockRendererMap,\n): MarkdownOptions[\"renderNode\"] {\n const rendererMap = normalizeMarkdownCodeBlockRenderers(renderers)\n\n const renderNode: MarkdownRenderNode = (token, context) => {\n if (token.type !== \"code\") {\n return undefined\n }\n\n const language = infoStringToFiletype(token.lang ?? \"\")\n if (!language) return undefined\n\n return rendererMap.get(language)?.(token as Tokens.Code, context)\n }\n\n renderNode.codeBlockOnly = true\n return renderNode\n}\n\ninterface TableContentCache {\n content: TextTableContent\n cellKeys: Uint32Array[]\n}\n\ninterface CustomRenderableResult {\n renderable?: Renderable\n tableContentCache?: TableContentCache\n tracksInterBlockMargin: boolean\n canUpdateInPlace: boolean\n}\n\ninterface CustomRenderDefaultResult {\n renderable: Renderable | null | undefined\n tableContentCache?: TableContentCache\n}\n\ninterface RenderNodeResult {\n renderable?: Renderable\n defaultResult?: CustomRenderDefaultResult\n}\n\ninterface ResolvedTableRenderableOptions {\n columnWidthMode: TextTableColumnWidthMode\n columnFitter: TextTableColumnFitter\n wrapMode: \"none\" | \"char\" | \"word\"\n cellPadding: number\n cellPaddingX: number\n cellPaddingY: number\n columnGap: number\n border: boolean\n outerBorder: boolean\n showBorders: boolean\n borderStyle: BorderStyle\n borderColor: ColorInput\n selectable: boolean\n}\n\nconst TRAILING_MARKDOWN_BLOCK_BREAKS_RE = /(?:\\r?\\n){2,}$/\nconst TRAILING_MARKDOWN_BLOCK_NEWLINES_RE = /(?:\\r?\\n)+$/\n\nfunction colorsEqual(left?: RGBA, right?: RGBA): boolean {\n if (!left || !right) return left === right\n return left.equals(right)\n}\n\nexport interface BlockState {\n token: MarkedToken\n tokenRaw: string // Cache raw for comparison\n marginTop?: number\n renderable: Renderable\n tableContentCache?: TableContentCache\n tracksInterBlockMargin?: boolean\n /** Whether built-in reconciliation can update this renderable without replacing it. */\n canUpdateInPlace: boolean\n}\n\nexport type { ParseState }\n\ninterface MarkdownRenderBlock {\n token: MarkedToken\n sourceTokenEnd: number\n marginTop: number\n}\n\ninterface ListItemRenderInput {\n item: Tokens.ListItem\n marker: string\n markerWidth: number\n id: string\n}\n\nexport class MarkdownRenderable extends Renderable {\n private _content: string = \"\"\n private _syntaxStyle: SyntaxStyle\n private _fg?: RGBA\n private _bg?: RGBA\n private _conceal: boolean\n private _concealCode: boolean\n private _treeSitterClient?: TreeSitterClient\n private _tableOptions?: MarkdownTableOptions\n private _renderNode?: MarkdownOptions[\"renderNode\"]\n private _internalBlockMode: \"coalesced\" | \"top-level\"\n\n _parseState: ParseState | null = null\n private _streaming: boolean = false\n _blockStates: BlockState[] = []\n _stableBlockCount = 0\n private _styleDirty: boolean = false\n private _linkifyMarkdownChunks: OnChunksCallback = (chunks, context) =>\n detectLinks(chunks, {\n content: context.content,\n highlights: context.highlights,\n })\n\n protected _contentDefaultOptions = {\n content: \"\",\n conceal: true,\n concealCode: false,\n streaming: false,\n internalBlockMode: \"coalesced\",\n } satisfies Partial<MarkdownOptions>\n\n constructor(ctx: RenderContext, options: MarkdownOptions) {\n super(ctx, {\n ...options,\n flexDirection: \"column\",\n flexShrink: options.flexShrink ?? 0,\n })\n\n this._syntaxStyle = options.syntaxStyle\n this._fg = options.fg ? parseColor(options.fg) : undefined\n this._bg = options.bg ? parseColor(options.bg) : undefined\n this._conceal = options.conceal ?? this._contentDefaultOptions.conceal\n this._concealCode = options.concealCode ?? this._contentDefaultOptions.concealCode\n this._content = options.content ?? this._contentDefaultOptions.content\n this._treeSitterClient = options.treeSitterClient\n this._tableOptions = options.tableOptions\n this._renderNode = options.renderNode\n this._streaming = options.streaming ?? this._contentDefaultOptions.streaming\n this._internalBlockMode = options.internalBlockMode ?? this._contentDefaultOptions.internalBlockMode\n\n this.updateBlocks()\n }\n\n get content(): string {\n return this._content\n }\n\n set content(value: string) {\n if (this.isDestroyed) return\n if (this._content !== value) {\n this._content = value\n this.updateBlocks()\n this.requestRender()\n }\n }\n\n get syntaxStyle(): SyntaxStyle {\n return this._syntaxStyle\n }\n\n set syntaxStyle(value: SyntaxStyle) {\n if (this._syntaxStyle !== value) {\n this._syntaxStyle = value\n // Mark dirty - actual re-render happens in renderSelf\n this._styleDirty = true\n }\n }\n\n get fg(): RGBA | undefined {\n return this._fg\n }\n\n set fg(value: ColorInput | undefined) {\n const next = value ? parseColor(value) : undefined\n if (!colorsEqual(this._fg, next)) {\n this._fg = next\n this._styleDirty = true\n }\n }\n\n get bg(): RGBA | undefined {\n return this._bg\n }\n\n set bg(value: ColorInput | undefined) {\n const next = value ? parseColor(value) : undefined\n if (!colorsEqual(this._bg, next)) {\n this._bg = next\n this._styleDirty = true\n }\n }\n\n get conceal(): boolean {\n return this._conceal\n }\n\n set conceal(value: boolean) {\n if (this._conceal !== value) {\n this._conceal = value\n // Mark dirty - actual re-render happens in renderSelf\n this._styleDirty = true\n }\n }\n\n get concealCode(): boolean {\n return this._concealCode\n }\n\n set concealCode(value: boolean) {\n if (this._concealCode !== value) {\n this._concealCode = value\n // Mark dirty - actual re-render happens in renderSelf\n this._styleDirty = true\n }\n }\n\n get streaming(): boolean {\n return this._streaming\n }\n\n set streaming(value: boolean) {\n if (this.isDestroyed) return\n if (this._streaming !== value) {\n this._streaming = value\n this.updateBlocks(true)\n }\n }\n\n get tableOptions(): MarkdownTableOptions | undefined {\n return this._tableOptions\n }\n\n set tableOptions(value: MarkdownTableOptions | undefined) {\n this._tableOptions = value\n this.applyTableOptionsToBlocks()\n }\n\n get renderNode(): MarkdownOptions[\"renderNode\"] | undefined {\n return this._renderNode\n }\n\n set renderNode(value: MarkdownOptions[\"renderNode\"] | undefined) {\n if (this._renderNode === value) return\n this._renderNode = value\n this.clearBlockStates()\n this._parseState = null\n this.updateBlocks(true)\n this.requestRender()\n }\n\n get internalBlockMode(): \"coalesced\" | \"top-level\" {\n return this._internalBlockMode\n }\n\n set internalBlockMode(value: \"coalesced\" | \"top-level\") {\n if (this._internalBlockMode === value) return\n this._internalBlockMode = value\n this.updateBlocks(true)\n this.requestRender()\n }\n\n private getStyle(group: string): StyleDefinition | undefined {\n // The solid reconciler applies props via setters in JSX declaration order.\n // If `content` is set before `syntaxStyle`, updateBlocks() runs before\n // _syntaxStyle is initialized.\n if (!this._syntaxStyle) return undefined\n let style = this._syntaxStyle.getStyle(group)\n if (!style && group.includes(\".\")) {\n const baseName = group.split(\".\")[0]\n style = this._syntaxStyle.getStyle(baseName)\n }\n return style\n }\n\n private createChunk(text: string, group: string, link?: { url: string }): TextChunk {\n const style = this.getStyle(group) || this.getStyle(\"default\")\n return {\n __isChunk: true,\n text,\n fg: style?.fg,\n bg: style?.bg,\n attributes: style\n ? createTextAttributes({\n bold: style.bold,\n italic: style.italic,\n underline: style.underline,\n dim: style.dim,\n })\n : 0,\n link,\n }\n }\n\n private createDefaultChunk(text: string): TextChunk {\n return this.createChunk(text, \"default\")\n }\n\n private createInitialStyledText(token: MarkedToken): StyledText | undefined {\n if (!this._streaming) return undefined\n\n const chunks: TextChunk[] = []\n if (\"tokens\" in token && Array.isArray(token.tokens)) {\n this.renderInlineContent(token.tokens, chunks)\n }\n\n if (chunks.length === 0 && \"text\" in token && typeof token.text === \"string\") {\n this.renderInlineContent(Lexer.lexInline(token.text), chunks)\n }\n\n return chunks.length > 0 ? new StyledText(chunks) : undefined\n }\n\n private renderInlineContent(tokens: Token[], chunks: TextChunk[]): void {\n for (const token of tokens) {\n this.renderInlineToken(token as MarkedToken, chunks)\n }\n }\n\n private renderInlineToken(token: MarkedToken, chunks: TextChunk[]): void {\n switch (token.type) {\n case \"text\":\n chunks.push(this.createDefaultChunk(token.text))\n break\n\n case \"escape\":\n chunks.push(this.createDefaultChunk(token.text))\n break\n\n case \"codespan\":\n if (this._conceal) {\n chunks.push(this.createChunk(token.text, \"markup.raw\"))\n } else {\n chunks.push(this.createChunk(\"`\", \"markup.raw\"))\n chunks.push(this.createChunk(token.text, \"markup.raw\"))\n chunks.push(this.createChunk(\"`\", \"markup.raw\"))\n }\n break\n\n case \"strong\":\n if (!this._conceal) {\n chunks.push(this.createChunk(\"**\", \"markup.strong\"))\n }\n for (const child of token.tokens) {\n this.renderInlineTokenWithStyle(child as MarkedToken, chunks, \"markup.strong\")\n }\n if (!this._conceal) {\n chunks.push(this.createChunk(\"**\", \"markup.strong\"))\n }\n break\n\n case \"em\":\n if (!this._conceal) {\n chunks.push(this.createChunk(\"*\", \"markup.italic\"))\n }\n for (const child of token.tokens) {\n this.renderInlineTokenWithStyle(child as MarkedToken, chunks, \"markup.italic\")\n }\n if (!this._conceal) {\n chunks.push(this.createChunk(\"*\", \"markup.italic\"))\n }\n break\n\n case \"del\":\n if (!this._conceal) {\n chunks.push(this.createChunk(\"~~\", \"markup.strikethrough\"))\n }\n for (const child of token.tokens) {\n this.renderInlineTokenWithStyle(child as MarkedToken, chunks, \"markup.strikethrough\")\n }\n if (!this._conceal) {\n chunks.push(this.createChunk(\"~~\", \"markup.strikethrough\"))\n }\n break\n\n case \"link\": {\n const linkHref = { url: token.href }\n if (this._conceal) {\n for (const child of token.tokens) {\n this.renderInlineTokenWithStyle(child as MarkedToken, chunks, \"markup.link.label\", linkHref)\n }\n chunks.push(this.createChunk(\" (\", \"markup.link\", linkHref))\n chunks.push(this.createChunk(token.href, \"markup.link.url\", linkHref))\n chunks.push(this.createChunk(\")\", \"markup.link\", linkHref))\n } else {\n chunks.push(this.createChunk(\"[\", \"markup.link\", linkHref))\n for (const child of token.tokens) {\n this.renderInlineTokenWithStyle(child as MarkedToken, chunks, \"markup.link.label\", linkHref)\n }\n chunks.push(this.createChunk(\"](\", \"markup.link\", linkHref))\n chunks.push(this.createChunk(token.href, \"markup.link.url\", linkHref))\n chunks.push(this.createChunk(\")\", \"markup.link\", linkHref))\n }\n break\n }\n\n case \"image\": {\n const imageHref = { url: token.href }\n if (this._conceal) {\n chunks.push(this.createChunk(token.text || \"image\", \"markup.link.label\", imageHref))\n } else {\n chunks.push(this.createChunk(\")\n chunks.push(this.createChunk(token.href, \"markup.link.url\", imageHref))\n chunks.push(this.createChunk(\")\", \"markup.link\", imageHref))\n }\n break\n }\n\n case \"br\":\n chunks.push(this.createDefaultChunk(\"\\n\"))\n break\n\n default:\n if (\"tokens\" in token && Array.isArray(token.tokens)) {\n this.renderInlineContent(token.tokens, chunks)\n } else if (\"text\" in token && typeof token.text === \"string\") {\n chunks.push(this.createDefaultChunk(token.text))\n }\n break\n }\n }\n\n private renderInlineTokenWithStyle(\n token: MarkedToken,\n chunks: TextChunk[],\n styleGroup: string,\n link?: { url: string },\n ): void {\n switch (token.type) {\n case \"text\":\n chunks.push(this.createChunk(token.text, styleGroup, link))\n break\n\n case \"escape\":\n chunks.push(this.createChunk(token.text, styleGroup, link))\n break\n\n case \"codespan\":\n if (this._conceal) {\n chunks.push(this.createChunk(token.text, \"markup.raw\", link))\n } else {\n chunks.push(this.createChunk(\"`\", \"markup.raw\", link))\n chunks.push(this.createChunk(token.text, \"markup.raw\", link))\n chunks.push(this.createChunk(\"`\", \"markup.raw\", link))\n }\n break\n\n default:\n this.renderInlineToken(token, chunks)\n break\n }\n }\n\n private applyMargins(renderable: Renderable, marginTop: number, marginBottom: number): void {\n renderable.marginTop = marginTop\n renderable.marginBottom = marginBottom\n }\n\n private createMarkdownCodeRenderable(\n content: string,\n id: string,\n marginBottom: number = 0,\n onChunks: OnChunksCallback = this._linkifyMarkdownChunks,\n baseHighlight?: string,\n initialStyledText?: StyledText,\n ): CodeRenderable {\n return new CodeRenderable(this.ctx, {\n id,\n content,\n filetype: \"markdown\",\n syntaxStyle: this._syntaxStyle,\n fg: this._fg,\n bg: this._bg,\n conceal: this._conceal,\n drawUnstyledText: initialStyledText !== undefined,\n streaming: true,\n initialStyledText,\n baseHighlight,\n onChunks,\n treeSitterClient: this._treeSitterClient,\n width: \"100%\",\n marginBottom,\n })\n }\n\n private getBlockquoteContent(token: MarkedToken): string {\n return \"text\" in token && typeof token.text === \"string\" && token.text ? token.text : \" \"\n }\n\n private getBlockquoteBorderColor(): ColorInput {\n return this.getStyle(\"conceal\")?.fg ?? this.getStyle(\"default\")?.fg ?? this._fg ?? \"#FFFFFF\"\n }\n\n private createBlockquoteRenderable(token: MarkedToken, id: string, marginBottom: number = 0): BoxRenderable {\n const renderable = new BoxRenderable(this.ctx, {\n id,\n width: \"100%\",\n border: [\"left\"],\n borderColor: this.getBlockquoteBorderColor(),\n paddingLeft: 1,\n flexShrink: 0,\n marginBottom,\n })\n\n renderable.add(\n this.createMarkdownCodeRenderable(\n this.getBlockquoteContent(token),\n `${id}-content`,\n 0,\n this._linkifyMarkdownChunks,\n \"markup.quote\",\n ),\n )\n\n return renderable\n }\n\n private createListRenderable(token: Tokens.List, id: string, marginBottom: number = 0): BoxRenderable {\n const list = new BoxRenderable(this.ctx, {\n id,\n width: \"100%\",\n flexDirection: \"column\",\n flexShrink: 0,\n marginBottom,\n })\n\n for (const item of this.getListItemInputs(token, id)) {\n list.add(this.createListItemRenderable(item))\n }\n\n return list\n }\n\n private getListItemInputs(token: Tokens.List, id: string): ListItemRenderInput[] {\n const items = token.items ?? []\n const start = token.start === \"\" || token.start === undefined || token.start === null ? 1 : Number(token.start)\n const markerWidth = Math.max(1, ...items.map((_, index) => (token.ordered ? `${start + index}.` : \"-\").length))\n\n return items.map((item, index) => ({\n item,\n marker: token.ordered ? `${start + index}.` : \"-\",\n markerWidth,\n id: `${id}-item-${index}`,\n }))\n }\n\n private applyListRenderable(\n renderable: Renderable,\n token: Tokens.List,\n previousToken: Tokens.List | undefined,\n id: string,\n marginBottom: number = 0,\n ): boolean {\n if (!(renderable instanceof BoxRenderable)) return false\n\n renderable.marginBottom = marginBottom\n\n const inputs = this.getListItemInputs(token, id)\n const previousItems = previousToken?.items ?? []\n const rows = renderable.getChildren()\n\n for (let index = 0; index < inputs.length; index += 1) {\n const input = inputs[index]\n const existing = rows[index]\n\n if (existing instanceof BoxRenderable && this.applyListItemRenderable(existing, input, previousItems[index])) {\n continue\n }\n\n existing?.destroyRecursively()\n renderable.add(this.createListItemRenderable(input), index)\n }\n\n for (let index = rows.length - 1; index >= inputs.length; index -= 1) {\n rows[index]?.destroyRecursively()\n }\n\n return true\n }\n\n private createListItemRenderable(input: ListItemRenderInput): BoxRenderable {\n const row = new BoxRenderable(this.ctx, {\n id: input.id,\n width: \"100%\",\n flexDirection: \"row\",\n flexShrink: 0,\n marginBottom: /\\n[ \\t]*\\n$/.test(input.item.raw) ? 1 : 0,\n })\n row.add(\n new TextRenderable(this.ctx, {\n id: `${input.id}-marker`,\n content: new StyledText([this.createChunk(input.marker.padStart(input.markerWidth) + \" \", \"markup.list\")]),\n width: input.markerWidth + 1,\n flexShrink: 0,\n }),\n )\n\n const content = new BoxRenderable(this.ctx, {\n id: `${input.id}-content`,\n flexDirection: \"column\",\n flexGrow: 1,\n flexShrink: 1,\n })\n row.add(content)\n\n let pendingMarginTop = 0\n for (let index = 0; index < input.item.tokens.length; index += 1) {\n const child = input.item.tokens[index] as MarkedToken | undefined\n if (!child) continue\n if (child.type === \"checkbox\") continue\n if (child.type === \"space\") {\n pendingMarginTop = Math.max(pendingMarginTop, 1)\n continue\n }\n const renderable = this.createListChildRenderable(child, `${input.id}-child-${index}`)\n if (!renderable) continue\n renderable.marginTop = child.type === \"list\" ? 0 : pendingMarginTop\n pendingMarginTop = 0\n content.add(renderable)\n }\n\n return row\n }\n\n private applyListItemRenderable(\n row: BoxRenderable,\n input: ListItemRenderInput,\n previousItem: Tokens.ListItem | undefined,\n ): boolean {\n this.applyListItemMarker(row, input)\n\n const content = row.getChildren()[1]\n if (!(content instanceof BoxRenderable)) return false\n\n if (previousItem && previousItem.raw === input.item.raw) {\n return true\n }\n\n return this.applyListItemChildren(content, input.item, previousItem, input.id)\n }\n\n private applyListItemChildren(\n content: BoxRenderable,\n item: Tokens.ListItem,\n previousItem: Tokens.ListItem | undefined,\n id: string,\n ): boolean {\n const previousTokens = previousItem ? this.getRenderableListItemTokens(previousItem) : []\n const children = content.getChildren()\n let childIndex = 0\n let pendingMarginTop = 0\n\n for (let tokenIndex = 0; tokenIndex < item.tokens.length; tokenIndex += 1) {\n const token = item.tokens[tokenIndex] as MarkedToken | undefined\n if (!token) continue\n if (token.type === \"checkbox\") continue\n if (token.type === \"space\") {\n pendingMarginTop = Math.max(pendingMarginTop, 1)\n continue\n }\n\n const existing = children[childIndex]\n const childId = `${id}-child-${tokenIndex}`\n\n const marginTop = token.type === \"list\" ? 0 : pendingMarginTop\n pendingMarginTop = 0\n\n if (!existing) {\n const renderable = this.createListChildRenderable(token, childId)\n if (!renderable) return false\n renderable.marginTop = marginTop\n content.add(renderable, childIndex)\n childIndex += 1\n continue\n }\n\n if (!this.applyListChildRenderable(existing, token, previousTokens[childIndex], childId)) {\n return false\n }\n existing.marginTop = marginTop\n childIndex += 1\n }\n\n this.destroyListItemChildrenAfter(content, childIndex)\n return true\n }\n\n private getRenderableListItemTokens(item: Tokens.ListItem): MarkedToken[] {\n const tokens: MarkedToken[] = []\n\n for (const token of item.tokens as MarkedToken[]) {\n if (token.type === \"checkbox\" || token.type === \"space\") continue\n tokens.push(token)\n }\n\n return tokens\n }\n\n private applyListChildRenderable(\n renderable: Renderable,\n token: MarkedToken,\n previousToken: MarkedToken | undefined,\n id: string,\n ): boolean {\n if ((token.type === \"text\" || token.type === \"paragraph\") && renderable instanceof CodeRenderable) {\n this.applyMarkdownCodeRenderable(renderable, this.normalizeScrollbackMarkdownBlockRaw(token.raw), 0)\n return true\n }\n\n if (token.type === \"list\" && renderable instanceof BoxRenderable) {\n return this.applyListRenderable(renderable, token as Tokens.List, previousToken as Tokens.List | undefined, id)\n }\n\n if (token.type === \"code\" && renderable instanceof CodeRenderable) {\n this.applyCodeBlockRenderable(renderable, token as Tokens.Code, 0)\n return true\n }\n\n return previousToken?.raw === token.raw\n }\n\n private destroyListItemChildrenAfter(content: BoxRenderable, index: number): void {\n const children = content.getChildren()\n for (let i = children.length - 1; i >= index; i -= 1) {\n children[i]?.destroyRecursively()\n }\n }\n\n private applyListItemMarker(row: BoxRenderable, input: ListItemRenderInput): void {\n const marker = row.getChildren()[0]\n if (!(marker instanceof TextRenderable)) return\n const marginBottom = /\\n[ \\t]*\\n$/.test(input.item.raw) ? 1 : 0\n const markerWidth = input.markerWidth + 1\n const markerText = input.marker.padStart(input.markerWidth) + \" \"\n\n if (row.marginBottom !== marginBottom) row.marginBottom = marginBottom\n if (marker.width !== markerWidth) marker.width = markerWidth\n if (marker.chunks[0]?.text !== markerText) {\n marker.content = new StyledText([this.createChunk(markerText, \"markup.list\")])\n }\n }\n\n private createListChildRenderable(token: MarkedToken, id: string): Renderable | null {\n if (token.type === \"text\" || token.type === \"paragraph\") {\n return this.createMarkdownCodeRenderable(\n this.normalizeScrollbackMarkdownBlockRaw(token.raw),\n id,\n 0,\n this._linkifyMarkdownChunks,\n undefined,\n this.createInitialStyledText(token),\n )\n }\n if (token.type === \"list\") return this.createListRenderable(token as Tokens.List, id)\n if (token.type === \"code\") return this.createCodeRenderable(token as Tokens.Code, id)\n if (token.type === \"blockquote\") return this.createBlockquoteRenderable(token, id)\n if (token.type === \"hr\") return this.createHorizontalRuleRenderable(id)\n if (token.type === \"table\") return this.createTableBlock(token as Tokens.Table, id).renderable\n return token.raw\n ? this.createMarkdownCodeRenderable(\n token.raw,\n id,\n 0,\n this._linkifyMarkdownChunks,\n undefined,\n this.createInitialStyledText(token),\n )\n : null\n }\n\n private createHorizontalRuleRenderable(id: string, marginBottom: number = 0): BoxRenderable {\n return new BoxRenderable(this.ctx, {\n id,\n width: \"100%\",\n height: 1,\n border: [\"top\"],\n borderColor: this.getStyle(\"conceal\")?.fg ?? this._fg ?? \"#888888\",\n flexShrink: 0,\n marginBottom,\n })\n }\n\n private createCodeRenderable(token: Tokens.Code, id: string, marginBottom: number = 0): Renderable {\n return new CodeRenderable(this.ctx, {\n id,\n content: token.text,\n filetype: infoStringToFiletype(token.lang ?? \"\"),\n syntaxStyle: this._syntaxStyle,\n fg: this._fg,\n bg: this._bg,\n conceal: this._concealCode,\n drawUnstyledText: !this._streaming,\n streaming: this._streaming,\n treeSitterClient: this._treeSitterClient,\n width: \"100%\",\n marginBottom,\n })\n }\n\n private applyMarkdownCodeRenderable(\n renderable: CodeRenderable,\n content: string,\n marginBottom: number,\n baseHighlight?: string,\n initialStyledText?: StyledText,\n ): void {\n renderable.initialStyledText = initialStyledText\n renderable.filetype = \"markdown\"\n renderable.syntaxStyle = this._syntaxStyle\n renderable.fg = this._fg\n renderable.bg = this._bg\n renderable.conceal = this._conceal\n renderable.drawUnstyledText = initialStyledText !== undefined\n renderable.streaming = true\n renderable.baseHighlight = baseHighlight\n renderable.content = content\n renderable.marginBottom = marginBottom\n }\n\n private applyBlockquoteRenderable(renderable: Renderable, token: MarkedToken, marginBottom: number): void {\n if (!(renderable instanceof BoxRenderable)) return\n\n renderable.borderColor = this.getBlockquoteBorderColor()\n renderable.marginBottom = marginBottom\n\n const child = renderable.getChildren()[0]\n if (child instanceof CodeRenderable) {\n this.applyMarkdownCodeRenderable(child, this.getBlockquoteContent(token), 0, \"markup.quote\")\n return\n }\n\n for (const existing of renderable.getChildren()) {\n existing.destroyRecursively()\n }\n renderable.add(\n this.createMarkdownCodeRenderable(\n this.getBlockquoteContent(token),\n `${renderable.id}-content`,\n 0,\n this._linkifyMarkdownChunks,\n \"markup.quote\",\n ),\n )\n }\n\n private applyCodeBlockRenderable(renderable: Renderable, token: Tokens.Code, marginBottom: number): void {\n if (!(renderable instanceof CodeRenderable)) return\n\n renderable.filetype = infoStringToFiletype(token.lang ?? \"\")\n renderable.syntaxStyle = this._syntaxStyle\n renderable.fg = this._fg\n renderable.bg = this._bg\n renderable.conceal = this._concealCode\n renderable.drawUnstyledText = !this._streaming\n renderable.streaming = this._streaming\n renderable.content = token.text\n renderable.marginBottom = marginBottom\n }\n\n private shouldRenderSeparately(token: MarkedToken): boolean {\n return token.type === \"code\" || token.type === \"table\" || token.type === \"blockquote\" || token.type === \"hr\"\n }\n\n private getInterBlockMargin(token: MarkedToken, nextToken: MarkedToken | undefined): number {\n if (!nextToken) return 0\n if (this.shouldRenderSeparately(token)) return 1\n if (!this.shouldRenderSeparately(nextToken)) return 0\n return TRAILING_MARKDOWN_BLOCK_NEWLINES_RE.test(token.raw) ? 0 : 1\n }\n\n private applyInterBlockMargin(state: BlockState, token: MarkedToken, nextToken: MarkedToken | undefined): void {\n if (state.tracksInterBlockMargin === false) return\n state.renderable.marginBottom = this.getInterBlockMargin(token, nextToken)\n }\n\n private createMarkdownBlockToken(raw: string): MarkedToken {\n return {\n type: \"paragraph\",\n raw,\n text: raw,\n tokens: [],\n } as MarkedToken\n }\n\n private normalizeMarkdownBlockRaw(raw: string): string {\n return raw.replace(TRAILING_MARKDOWN_BLOCK_BREAKS_RE, \"\\n\")\n }\n\n private normalizeScrollbackMarkdownBlockRaw(raw: string): string {\n return raw.replace(TRAILING_MARKDOWN_BLOCK_NEWLINES_RE, \"\")\n }\n\n private isCodeBlockOnlyRenderer(): boolean {\n return (this._renderNode as MarkdownRenderNode | undefined)?.codeBlockOnly === true\n }\n\n private buildRenderableTokens(tokens: MarkedToken[]): MarkedToken[] {\n if (this._renderNode && !this.isCodeBlockOnlyRenderer()) {\n return tokens.filter((token) => token.type !== \"space\")\n }\n\n const renderTokens: MarkedToken[] = []\n let markdownRaw = \"\"\n\n const flushMarkdownRaw = (): void => {\n if (markdownRaw.length === 0) return\n const normalizedRaw = this.normalizeMarkdownBlockRaw(markdownRaw)\n if (normalizedRaw.length > 0) {\n renderTokens.push(this.createMarkdownBlockToken(normalizedRaw))\n }\n markdownRaw = \"\"\n }\n\n for (let i = 0; i < tokens.length; i += 1) {\n const token = tokens[i]\n\n if (token.type === \"space\") {\n if (markdownRaw.length === 0) {\n continue\n }\n\n let nextIndex = i + 1\n while (nextIndex < tokens.length && tokens[nextIndex].type === \"space\") {\n nextIndex += 1\n }\n\n const nextToken = tokens[nextIndex]\n if (nextToken && !this.shouldRenderSeparately(nextToken)) {\n markdownRaw += token.raw\n }\n continue\n }\n\n if (this.shouldRenderSeparately(token)) {\n flushMarkdownRaw()\n renderTokens.push(token)\n continue\n }\n\n markdownRaw += token.raw\n }\n\n flushMarkdownRaw()\n\n return renderTokens\n }\n\n private buildTopLevelRenderBlocks(tokens: MarkedToken[]): MarkdownRenderBlock[] {\n const blocks: MarkdownRenderBlock[] = []\n let gapBefore = \"\"\n\n for (let i = 0; i < tokens.length; i += 1) {\n const token = tokens[i]\n if (token.type === \"space\") {\n gapBefore += token.raw\n continue\n }\n\n const prev = blocks[blocks.length - 1]\n const marginTop = prev && this.shouldAddTopLevelMargin(prev.token, token, gapBefore) ? 1 : 0\n\n blocks.push({\n token,\n sourceTokenEnd: i + 1,\n marginTop,\n })\n gapBefore = \"\"\n }\n\n return blocks\n }\n\n private shouldAddTopLevelMargin(prev: MarkedToken, current: MarkedToken, gapBefore: string): boolean {\n if (this.isSeparatedTopLevelBlock(prev) || this.isSeparatedTopLevelBlock(current)) return true\n if (prev.type !== \"paragraph\" || current.type !== \"paragraph\") return false\n return TRAILING_MARKDOWN_BLOCK_BREAKS_RE.test(prev.raw + gapBefore)\n }\n\n private isSeparatedTopLevelBlock(token: MarkedToken): boolean {\n return token.type === \"heading\" || token.type === \"list\" || this.shouldRenderSeparately(token)\n }\n\n private getTableRowsToRender(table: Tokens.Table): Tokens.TableCell[][] {\n return table.rows\n }\n\n private hashString(value: string, seed: number): number {\n let hash = seed >>> 0\n for (let i = 0; i < value.length; i += 1) {\n hash ^= value.charCodeAt(i)\n hash = Math.imul(hash, 16777619)\n }\n return hash >>> 0\n }\n\n private hashTableToken(token: MarkedToken, seed: number, depth: number = 0): number {\n let hash = this.hashString(token.type, seed)\n\n if (\"raw\" in token && typeof token.raw === \"string\") {\n return this.hashString(token.raw, hash)\n }\n\n if (\"text\" in token && typeof token.text === \"string\") {\n hash = this.hashString(token.text, hash)\n }\n\n if (depth < 2 && \"tokens\" in token && Array.isArray(token.tokens)) {\n for (const child of token.tokens) {\n hash = this.hashTableToken(child as MarkedToken, hash, depth + 1)\n }\n }\n\n return hash >>> 0\n }\n\n private getTableCellKey(cell: Tokens.TableCell | undefined, isHeader: boolean): number {\n const seed = isHeader ? 2902232141 : 1371922141\n if (!cell) {\n return seed\n }\n\n if (typeof cell.text === \"string\") {\n return this.hashString(cell.text, seed)\n }\n\n if (Array.isArray(cell.tokens) && cell.tokens.length > 0) {\n let hash = seed ^ cell.tokens.length\n for (const token of cell.tokens) {\n hash = this.hashTableToken(token as MarkedToken, hash)\n }\n return hash >>> 0\n }\n\n return (seed ^ 2654435769) >>> 0\n }\n\n private createTableDataCellChunks(cell: Tokens.TableCell | undefined): TextChunk[] {\n const chunks: TextChunk[] = []\n if (cell) {\n this.renderInlineContent(cell.tokens, chunks)\n }\n return chunks.length > 0 ? chunks : [this.createDefaultChunk(\" \")]\n }\n\n private createTableHeaderCellChunks(cell: Tokens.TableCell): TextChunk[] {\n const chunks: TextChunk[] = []\n this.renderInlineContent(cell.tokens, chunks)\n\n const baseChunks = chunks.length > 0 ? chunks : [this.createDefaultChunk(\" \")]\n const headingStyle = this.getStyle(\"markup.heading\") || this.getStyle(\"default\")\n if (!headingStyle) {\n return baseChunks\n }\n\n const headingAttributes = createTextAttributes({\n bold: headingStyle.bold,\n italic: headingStyle.italic,\n underline: headingStyle.underline,\n dim: headingStyle.dim,\n })\n\n return baseChunks.map((chunk) => ({\n ...chunk,\n fg: headingStyle.fg ?? chunk.fg,\n bg: headingStyle.bg ?? chunk.bg,\n attributes: headingAttributes,\n }))\n }\n\n private buildTableContentCache(\n table: Tokens.Table,\n previous?: TableContentCache,\n forceRegenerate: boolean = false,\n ): { cache: TableContentCache | null; changed: boolean } {\n const colCount = table.header.length\n const rowsToRender = this.getTableRowsToRender(table)\n if (colCount === 0 || rowsToRender.length === 0) {\n return { cache: null, changed: previous !== undefined }\n }\n\n const content: TextTableContent = []\n const cellKeys: Uint32Array[] = []\n const totalRows = rowsToRender.length + 1\n\n let changed = forceRegenerate || !previous\n\n for (let rowIndex = 0; rowIndex < totalRows; rowIndex += 1) {\n const rowContent: TextTableCellContent[] = []\n const rowKeys = new Uint32Array(colCount)\n\n for (let colIndex = 0; colIndex < colCount; colIndex += 1) {\n const isHeader = rowIndex === 0\n const cell = isHeader ? table.header[colIndex] : rowsToRender[rowIndex - 1]?.[colIndex]\n const cellKey = this.getTableCellKey(cell, isHeader)\n rowKeys[colIndex] = cellKey\n\n const previousCellKey = previous?.cellKeys[rowIndex]?.[colIndex]\n const previousCellContent = previous?.content[rowIndex]?.[colIndex]\n\n if (!forceRegenerate && previousCellKey === cellKey && Array.isArray(previousCellContent)) {\n rowContent.push(previousCellContent)\n continue\n }\n\n changed = true\n rowContent.push(\n isHeader ? this.createTableHeaderCellChunks(table.header[colIndex]) : this.createTableDataCellChunks(cell),\n )\n }\n\n content.push(rowContent)\n cellKeys.push(rowKeys)\n }\n\n if (previous && !changed) {\n if (previous.content.length !== content.length) {\n changed = true\n } else {\n for (let rowIndex = 0; rowIndex < content.length; rowIndex += 1) {\n if ((previous.content[rowIndex]?.length ?? 0) !== content[rowIndex].length) {\n changed = true\n break\n }\n }\n }\n }\n\n return {\n cache: {\n content,\n cellKeys,\n },\n changed,\n }\n }\n\n private resolveTableStyle(options: MarkdownTableOptions | undefined = this._tableOptions): MarkdownTableStyle {\n if (options?.style === \"columns\") {\n return \"columns\"\n }\n\n if (options?.style === \"grid\") {\n return \"grid\"\n }\n\n return this._internalBlockMode === \"top-level\" ? \"columns\" : \"grid\"\n }\n\n private usesBorderlessColumnSpacing(options: MarkdownTableOptions | undefined = this._tableOptions): boolean {\n const style = this.resolveTableStyle(options)\n const borders = options?.borders ?? style === \"grid\"\n\n return style === \"columns\" && !borders\n }\n\n private resolveTableRenderableOptions(): ResolvedTableRenderableOptions {\n const style = this.resolveTableStyle()\n const borders = this._tableOptions?.borders ?? style === \"grid\"\n\n return {\n columnWidthMode: this._tableOptions?.widthMode ?? (style === \"columns\" ? \"content\" : \"full\"),\n columnFitter: this._tableOptions?.columnFitter ?? \"proportional\",\n wrapMode: this._tableOptions?.wrapMode ?? \"word\",\n cellPadding: this._tableOptions?.cellPadding ?? 0,\n cellPaddingX: this._tableOptions?.cellPaddingX ?? this._tableOptions?.cellPadding ?? 0,\n cellPaddingY: this._tableOptions?.cellPaddingY ?? this._tableOptions?.cellPadding ?? 0,\n columnGap: this.usesBorderlessColumnSpacing() ? 2 : 0,\n border: borders,\n outerBorder: this._tableOptions?.outerBorder ?? borders,\n showBorders: borders,\n borderStyle: this._tableOptions?.borderStyle ?? \"single\",\n borderColor: this._tableOptions?.borderColor ?? this.getStyle(\"conceal\")?.fg ?? \"#888888\",\n selectable: this._tableOptions?.selectable ?? true,\n }\n }\n\n private applyTableRenderableOptions(\n tableRenderable: TextTableRenderable,\n options: ResolvedTableRenderableOptions,\n ): void {\n tableRenderable.columnWidthMode = options.columnWidthMode\n tableRenderable.columnFitter = options.columnFitter\n tableRenderable.wrapMode = options.wrapMode\n tableRenderable.cellPaddingX = options.cellPaddingX\n tableRenderable.cellPaddingY = options.cellPaddingY\n tableRenderable.columnGap = options.columnGap\n tableRenderable.border = options.border\n tableRenderable.outerBorder = options.outerBorder\n tableRenderable.showBorders = options.showBorders\n tableRenderable.borderStyle = options.borderStyle\n tableRenderable.borderColor = options.borderColor\n tableRenderable.selectable = options.selectable\n }\n\n private applyTableOptionsToBlocks(): void {\n const options = this.resolveTableRenderableOptions()\n let updated = false\n\n for (const state of this._blockStates) {\n if (state.renderable instanceof TextTableRenderable) {\n this.applyTableRenderableOptions(state.renderable, options)\n updated = true\n }\n }\n\n if (updated) {\n this.requestRender()\n }\n }\n\n private createTextTableRenderable(\n content: TextTableContent,\n id: string,\n marginBottom: number = 0,\n ): TextTableRenderable {\n const options = this.resolveTableRenderableOptions()\n return new TextTableRenderable(this.ctx, {\n id,\n content,\n width: \"100%\",\n marginBottom,\n columnWidthMode: options.columnWidthMode,\n columnFitter: options.columnFitter,\n wrapMode: options.wrapMode,\n cellPadding: options.cellPadding,\n cellPaddingX: options.cellPaddingX,\n cellPaddingY: options.cellPaddingY,\n columnGap: options.columnGap,\n border: options.border,\n outerBorder: options.outerBorder,\n showBorders: options.showBorders,\n borderStyle: options.borderStyle,\n borderColor: options.borderColor,\n selectable: options.selectable,\n })\n }\n\n private createTableBlock(\n table: Tokens.Table,\n id: string,\n marginBottom: number = 0,\n previousCache?: TableContentCache,\n forceRegenerate: boolean = false,\n ): { renderable: Renderable; tableContentCache?: TableContentCache } {\n const { cache } = this.buildTableContentCache(table, previousCache, forceRegenerate)\n\n if (!cache) {\n return {\n renderable: this.createMarkdownCodeRenderable(table.raw, id, marginBottom),\n }\n }\n\n return {\n renderable: this.createTextTableRenderable(cache.content, id, marginBottom),\n tableContentCache: cache,\n }\n }\n\n private getStableBlockCount(blocks: MarkdownRenderBlock[], stableTokenCount: number): number {\n if (this._internalBlockMode !== \"top-level\") {\n return 0\n }\n\n let stableBlockCount = 0\n for (const block of blocks) {\n if (block.sourceTokenEnd <= stableTokenCount) {\n stableBlockCount += 1\n continue\n }\n\n break\n }\n\n return stableBlockCount\n }\n\n private syncTopLevelBlockState(\n state: BlockState,\n block: MarkdownRenderBlock,\n tableContentCache: TableContentCache | undefined = state.tableContentCache,\n ): void {\n state.token = block.token\n state.tokenRaw = block.token.raw\n state.marginTop = block.marginTop\n state.tableContentCache = tableContentCache\n }\n\n private getTopLevelBlockRaw(token: MarkedToken): string | undefined {\n if (!token.raw) {\n return undefined\n }\n\n return this.shouldRenderSeparately(token) ? token.raw : this.normalizeScrollbackMarkdownBlockRaw(token.raw)\n }\n\n private createTopLevelDefaultRenderable(\n block: MarkdownRenderBlock,\n index: number,\n ): { renderable: Renderable | undefined; tableContentCache?: TableContentCache; canUpdateInPlace: boolean } {\n const { token, marginTop } = block\n const id = `${this.id}-block-${index}`\n\n if (token.type === \"code\") {\n const renderable = this.createCodeRenderable(token, id)\n renderable.marginTop = marginTop\n return { renderable, canUpdateInPlace: true }\n }\n\n if (token.type === \"table\") {\n const next = this.createTableBlock(token, id)\n next.renderable.marginTop = marginTop\n return { ...next, canUpdateInPlace: true }\n }\n\n if (token.type === \"blockquote\") {\n const renderable = this.createBlockquoteRenderable(token, id)\n renderable.marginTop = marginTop\n return { renderable, canUpdateInPlace: true }\n }\n\n if (token.type === \"list\") {\n const renderable = this.createListRenderable(token, id)\n renderable.marginTop = marginTop\n return { renderable, canUpdateInPlace: true }\n }\n\n if (token.type === \"hr\") {\n const renderable = this.createHorizontalRuleRenderable(id)\n renderable.marginTop = marginTop\n return { renderable, canUpdateInPlace: true }\n }\n\n const markdownRaw = this.getTopLevelBlockRaw(token)\n if (!markdownRaw) {\n return { renderable: undefined, canUpdateInPlace: true }\n }\n\n const renderable = this.createMarkdownCodeRenderable(\n markdownRaw,\n id,\n 0,\n this._linkifyMarkdownChunks,\n undefined,\n this.createInitialStyledText(token),\n )\n renderable.marginTop = marginTop\n return { renderable, canUpdateInPlace: true }\n }\n\n private createTopLevelRenderable(\n block: MarkdownRenderBlock,\n index: number,\n ): { renderable: Renderable | undefined; tableContentCache?: TableContentCache; canUpdateInPlace: boolean } {\n if (!this._renderNode) {\n return this.createTopLevelDefaultRenderable(block, index)\n }\n\n const custom = this.createTopLevelCustomRenderable(block, index)\n if (!custom.renderable) return this.createTopLevelDefaultRenderable(block, index)\n\n const marginTop =\n typeof custom.renderable.marginTop === \"number\"\n ? Math.max(custom.renderable.marginTop, block.marginTop)\n : block.marginTop\n this.applyMargins(custom.renderable, marginTop, 0)\n\n return {\n renderable: custom.renderable,\n tableContentCache: custom.tableContentCache,\n canUpdateInPlace: custom.canUpdateInPlace,\n }\n }\n\n private createDefaultRenderable(token: MarkedToken, index: number, nextToken?: MarkedToken): Renderable | null {\n const id = `${this.id}-block-${index}`\n const marginBottom = this.getInterBlockMargin(token, nextToken)\n\n if (token.type === \"code\") {\n return this.createCodeRenderable(token, id, marginBottom)\n }\n\n if (token.type === \"blockquote\") {\n return this.createBlockquoteRenderable(token, id, marginBottom)\n }\n\n if (token.type === \"list\") {\n return this.createListRenderable(token as Tokens.List, id, marginBottom)\n }\n\n if (token.type === \"hr\") {\n return this.createHorizontalRuleRenderable(id, marginBottom)\n }\n\n if (token.type === \"table\") {\n return this.createTableBlock(token, id, marginBottom).renderable\n }\n\n if (token.type === \"space\") {\n return null\n }\n\n if (!token.raw) {\n return null\n }\n\n return this.createMarkdownCodeRenderable(\n token.raw,\n id,\n marginBottom,\n this._linkifyMarkdownChunks,\n undefined,\n this.createInitialStyledText(token),\n )\n }\n\n private createCustomRenderable(\n token: MarkedToken,\n index: number,\n nextToken: MarkedToken | undefined,\n ): CustomRenderableResult {\n const custom = this.renderCustomNode(token, () => {\n return { renderable: this.createDefaultRenderable(token, index, nextToken) }\n })\n if (!custom.renderable) {\n return { tracksInterBlockMargin: true, canUpdateInPlace: true }\n }\n\n const canUpdateInPlace = custom.renderable === custom.defaultResult?.renderable\n\n return {\n renderable: custom.renderable,\n tracksInterBlockMargin: canUpdateInPlace,\n canUpdateInPlace,\n }\n }\n\n private createTopLevelCustomRenderable(block: MarkdownRenderBlock, index: number): CustomRenderableResult {\n const custom = this.renderCustomNode(block.token, () => {\n return this.createTopLevelDefaultRenderable(block, index)\n })\n if (!custom.renderable) {\n return { tracksInterBlockMargin: true, canUpdateInPlace: true }\n }\n\n const canUpdateInPlace = custom.renderable === custom.defaultResult?.renderable\n\n return {\n renderable: custom.renderable,\n tableContentCache: canUpdateInPlace ? custom.defaultResult?.tableContentCache : undefined,\n tracksInterBlockMargin: canUpdateInPlace,\n canUpdateInPlace,\n }\n }\n\n private renderCustomNode(token: MarkedToken, createDefault: () => CustomRenderDefaultResult): RenderNodeResult {\n if (!this._renderNode) return {}\n\n let defaultResult: CustomRenderDefaultResult | undefined\n const custom = this._renderNode(token, {\n syntaxStyle: this._syntaxStyle,\n conceal: this._conceal,\n concealCode: this._concealCode,\n treeSitterClient: this._treeSitterClient,\n defaultRender: () => {\n defaultResult = createDefault()\n return defaultResult.renderable ?? null\n },\n })\n\n this.destroyUnusedDefaultRenderable(defaultResult?.renderable, custom ?? undefined)\n\n return custom ? { renderable: custom, defaultResult } : {}\n }\n\n private destroyUnusedDefaultRenderable(renderable: Renderable | null | undefined, usedRenderable?: Renderable): void {\n if (!renderable || renderable === usedRenderable || renderable.parent) return\n renderable.destroyRecursively()\n }\n\n private updateBlockRenderable(\n state: BlockState,\n token: MarkedToken,\n index: number,\n nextToken: MarkedToken | undefined,\n forceListRefresh: boolean = false,\n ): void {\n const marginBottom = this.getInterBlockMargin(token, nextToken)\n\n if (token.type === \"code\") {\n this.applyCodeBlockRenderable(state.renderable, token as Tokens.Code, marginBottom)\n return\n }\n\n if (token.type === \"blockquote\") {\n this.applyBlockquoteRenderable(state.renderable, token, marginBottom)\n return\n }\n\n if (token.type === \"list\") {\n if (\n !this.applyListRenderable(\n state.renderable,\n token as Tokens.List,\n forceListRefresh ? undefined : (state.token as Tokens.List),\n `${this.id}-block-${index}`,\n marginBottom,\n )\n ) {\n state.renderable.destroyRecursively()\n state.renderable = this.createListRenderable(token as Tokens.List, `${this.id}-block-${index}`, marginBottom)\n this.add(state.renderable, index)\n }\n return\n }\n\n if (token.type === \"hr\") {\n state.renderable.marginBottom = marginBottom\n return\n }\n\n if (token.type === \"table\") {\n const tableToken = token as Tokens.Table\n const { cache, changed } = this.buildTableContentCache(tableToken, state.tableContentCache)\n\n if (!cache) {\n if (state.renderable instanceof CodeRenderable) {\n this.applyMarkdownCodeRenderable(state.renderable, tableToken.raw, marginBottom)\n state.tableContentCache = undefined\n return\n }\n\n state.renderable.destroyRecursively()\n const fallbackRenderable = this.createMarkdownCodeRenderable(\n tableToken.raw,\n `${this.id}-block-${index}`,\n marginBottom,\n )\n this.add(fallbackRenderable, index)\n state.renderable = fallbackRenderable\n state.tableContentCache = undefined\n return\n }\n\n if (state.renderable instanceof TextTableRenderable) {\n if (changed) {\n state.renderable.content = cache.content\n }\n this.applyTableRenderableOptions(state.renderable, this.resolveTableRenderableOptions())\n state.renderable.marginBottom = marginBottom\n state.tableContentCache = cache\n return\n }\n\n state.renderable.destroyRecursively()\n const tableRenderable = this.createTextTableRenderable(cache.content, `${this.id}-block-${index}`, marginBottom)\n this.add(tableRenderable, index)\n state.renderable = tableRenderable\n state.tableContentCache = cache\n return\n }\n\n if (state.renderable instanceof CodeRenderable) {\n this.applyMarkdownCodeRenderable(\n state.renderable,\n this.getTopLevelBlockRaw(token) ?? token.raw,\n marginBottom,\n undefined,\n this.createInitialStyledText(token),\n )\n return\n }\n\n state.renderable.destroyRecursively()\n const markdownRenderable = this.createMarkdownCodeRenderable(\n this.getTopLevelBlockRaw(token) ?? token.raw,\n `${this.id}-block-${index}`,\n marginBottom,\n this._linkifyMarkdownChunks,\n undefined,\n this.createInitialStyledText(token),\n )\n this.add(markdownRenderable, index)\n state.renderable = markdownRenderable\n }\n\n private updateTopLevelBlocks(tokens: MarkedToken[], forceTableRefresh: boolean): void {\n const blocks = this.buildTopLevelRenderBlocks(tokens)\n this._stableBlockCount = this.getStableBlockCount(blocks, this._parseState?.stableTokenCount ?? 0)\n\n let blockIndex = 0\n for (let i = 0; i < blocks.length; i += 1) {\n const block = blocks[i]\n const existing = this._blockStates[blockIndex]\n\n if (existing && existing.token === block.token && !forceTableRefresh) {\n if (existing.marginTop !== block.marginTop) {\n this.applyMargins(existing.renderable, block.marginTop, 0)\n }\n this.syncTopLevelBlockState(existing, block)\n blockIndex++\n continue\n }\n\n if (\n existing &&\n existing.tokenRaw === block.token.raw &&\n existing.token.type === block.token.type &&\n !forceTableRefresh\n ) {\n if (existing.marginTop !== block.marginTop) {\n this.applyMargins(existing.renderable, block.marginTop, 0)\n }\n this.syncTopLevelBlockState(existing, block)\n blockIndex++\n continue\n }\n\n if (\n existing &&\n existing.canUpdateInPlace &&\n existing.token.type === block.token.type &&\n this.canUpdateBlockRenderable(existing.renderable, block.token)\n ) {\n if (this._renderNode) {\n const custom = this.createTopLevelCustomRenderable(block, blockIndex)\n if (custom.renderable && !custom.canUpdateInPlace) {\n const marginTop =\n typeof custom.renderable.marginTop === \"number\"\n ? Math.max(custom.renderable.marginTop, block.marginTop)\n : block.marginTop\n this.applyMargins(custom.renderable, marginTop, 0)\n if (custom.renderable !== existing.renderable) {\n existing.renderable.destroyRecursively()\n this.add(custom.renderable, blockIndex)\n }\n this._blockStates[blockIndex] = {\n token: block.token,\n tokenRaw: block.token.raw,\n marginTop: block.marginTop,\n renderable: custom.renderable,\n tableContentCache: custom.tableContentCache,\n canUpdateInPlace: custom.canUpdateInPlace,\n }\n blockIndex++\n continue\n }\n this.destroyUnusedDefaultRenderable(custom.renderable)\n }\n\n this.updateBlockRenderable(existing, block.token, blockIndex, blocks[i + 1]?.token)\n existing.renderable.marginBottom = 0\n if (existing.marginTop !== block.marginTop) {\n this.applyMargins(existing.renderable, block.marginTop, 0)\n }\n this.syncTopLevelBlockState(existing, block)\n blockIndex++\n continue\n }\n\n if (existing) {\n existing.renderable.destroyRecursively()\n }\n\n const next = this.createTopLevelRenderable(block, blockIndex)\n if (next.renderable) {\n this.add(next.renderable, blockIndex)\n this._blockStates[blockIndex] = {\n token: block.token,\n tokenRaw: block.token.raw,\n marginTop: block.marginTop,\n renderable: next.renderable,\n tableContentCache: next.tableContentCache,\n canUpdateInPlace: next.canUpdateInPlace,\n }\n }\n blockIndex++\n }\n\n while (this._blockStates.length > blockIndex) {\n const removed = this._blockStates.pop()!\n removed.renderable.destroyRecursively()\n }\n }\n\n private canUpdateBlockRenderable(renderable: Renderable, token: MarkedToken): boolean {\n if (token.type === \"code\") return renderable instanceof CodeRenderable\n\n if (token.type === \"table\") return renderable instanceof TextTableRenderable\n if (token.type === \"blockquote\") return renderable instanceof BoxRenderable\n if (token.type === \"list\") return renderable instanceof BoxRenderable\n if (token.type === \"hr\") return renderable instanceof BoxRenderable\n return renderable instanceof CodeRenderable\n }\n\n private updateBlocks(forceTableRefresh: boolean = false): void {\n if (this.isDestroyed) return\n if (!this._content) {\n this.clearBlockStates()\n this._parseState = null\n this._stableBlockCount = 0\n return\n }\n\n const trailingUnstable = this._streaming ? 2 : 0\n this._parseState = parseMarkdownIncremental(this._content, this._parseState, trailingUnstable)\n\n const tokens = this._parseState.tokens\n\n if (tokens.length === 0 && this._content.length > 0) {\n this.clearBlockStates()\n this._stableBlockCount = 0\n const fallback = this.createMarkdownCodeRenderable(this._content, `${this.id}-fallback`)\n this.add(fallback)\n this._blockStates = [\n {\n token: { type: \"text\", raw: this._content, text: this._content } as MarkedToken,\n tokenRaw: this._content,\n marginTop: 0,\n renderable: fallback,\n tracksInterBlockMargin: true,\n canUpdateInPlace: true,\n },\n ]\n return\n }\n\n if (this._internalBlockMode === \"top-level\") {\n this.updateTopLevelBlocks(tokens, forceTableRefresh)\n return\n }\n\n this._stableBlockCount = 0\n const blockTokens = this.buildRenderableTokens(tokens)\n let blockIndex = 0\n for (let i = 0; i < blockTokens.length; i++) {\n const token = blockTokens[i]\n const nextToken = blockTokens[i + 1]\n const existing = this._blockStates[blockIndex]\n\n const shouldForceRefresh = forceTableRefresh\n\n if (existing && existing.token === token) {\n if (shouldForceRefresh) {\n this.updateBlockRenderable(existing, token, blockIndex, nextToken)\n existing.tokenRaw = token.raw\n } else {\n this.applyInterBlockMargin(existing, token, nextToken)\n }\n blockIndex++\n continue\n }\n\n if (existing && existing.tokenRaw === token.raw && existing.token.type === token.type) {\n existing.token = token\n if (shouldForceRefresh) {\n this.updateBlockRenderable(existing, token, blockIndex, nextToken)\n existing.tokenRaw = token.raw\n } else {\n this.applyInterBlockMargin(existing, token, nextToken)\n }\n blockIndex++\n continue\n }\n\n if (existing && existing.canUpdateInPlace && existing.token.type === token.type) {\n const custom = this.createCustomRenderable(token, blockIndex, nextToken)\n if (custom.renderable && !custom.canUpdateInPlace) {\n if (custom.renderable !== existing.renderable) {\n existing.renderable.destroyRecursively()\n this.add(custom.renderable, blockIndex)\n }\n this._blockStates[blockIndex] = {\n token,\n tokenRaw: token.raw,\n renderable: custom.renderable,\n tracksInterBlockMargin: custom.tracksInterBlockMargin,\n canUpdateInPlace: custom.canUpdateInPlace,\n }\n blockIndex++\n continue\n }\n this.destroyUnusedDefaultRenderable(custom.renderable)\n\n this.updateBlockRenderable(existing, token, blockIndex, nextToken)\n existing.token = token\n existing.tokenRaw = token.raw\n existing.tracksInterBlockMargin = true\n blockIndex++\n continue\n }\n\n if (existing) {\n existing.renderable.destroyRecursively()\n }\n\n let renderable: Renderable | undefined\n let tableContentCache: TableContentCache | undefined\n let tracksInterBlockMargin = true\n let canUpdateInPlace = true\n\n const custom = this.createCustomRenderable(token, blockIndex, nextToken)\n if (custom.renderable) {\n renderable = custom.renderable\n tracksInterBlockMargin = custom.tracksInterBlockMargin\n canUpdateInPlace = custom.canUpdateInPlace\n }\n\n if (!renderable) {\n if (token.type === \"table\") {\n const tableBlock = this.createTableBlock(\n token,\n `${this.id}-block-${blockIndex}`,\n this.getInterBlockMargin(token, nextToken),\n )\n renderable = tableBlock.renderable\n tableContentCache = tableBlock.tableContentCache\n } else {\n renderable = this.createDefaultRenderable(token, blockIndex, nextToken) ?? undefined\n }\n }\n\n if (token.type === \"table\" && !tableContentCache && renderable instanceof TextTableRenderable) {\n const { cache } = this.buildTableContentCache(token as Tokens.Table)\n tableContentCache = cache ?? undefined\n }\n\n if (renderable) {\n this.add(renderable, blockIndex)\n this._blockStates[blockIndex] = {\n token,\n tokenRaw: token.raw,\n renderable,\n tableContentCache,\n tracksInterBlockMargin,\n canUpdateInPlace,\n }\n }\n blockIndex++\n }\n\n while (this._blockStates.length > blockIndex) {\n const removed = this._blockStates.pop()!\n removed.renderable.destroyRecursively()\n }\n }\n\n private clearBlockStates(): void {\n for (const state of this._blockStates) {\n state.renderable.destroyRecursively()\n }\n this._blockStates = []\n this._stableBlockCount = 0\n }\n\n /**\n * Re-render existing blocks without rebuilding the parse state or block structure.\n * Used when only style/conceal changes - much faster than full rebuild.\n */\n private rerenderBlocks(): void {\n if (this._internalBlockMode === \"top-level\") {\n this.updateBlocks(true)\n return\n }\n\n for (let i = 0; i < this._blockStates.length; i++) {\n const state = this._blockStates[i]\n const marginBottom = this.getInterBlockMargin(state.token, this._blockStates[i + 1]?.token)\n\n if (state.token.type === \"code\") {\n this.applyCodeBlockRenderable(state.renderable, state.token as Tokens.Code, marginBottom)\n continue\n }\n\n if (state.token.type === \"blockquote\") {\n this.applyBlockquoteRenderable(state.renderable, state.token, marginBottom)\n continue\n }\n\n if (state.token.type === \"list\") {\n this.updateBlockRenderable(state, state.token, i, this._blockStates[i + 1]?.token, true)\n continue\n }\n\n if (state.token.type === \"hr\") {\n state.renderable.marginBottom = marginBottom\n continue\n }\n\n if (state.token.type === \"table\") {\n const tableToken = state.token as Tokens.Table\n const { cache } = this.buildTableContentCache(tableToken, state.tableContentCache, true)\n\n if (!cache) {\n if (state.renderable instanceof CodeRenderable) {\n this.applyMarkdownCodeRenderable(state.renderable, tableToken.raw, marginBottom)\n } else {\n state.renderable.destroyRecursively()\n const fallbackRenderable = this.createMarkdownCodeRenderable(\n tableToken.raw,\n `${this.id}-block-${i}`,\n marginBottom,\n )\n this.add(fallbackRenderable, i)\n state.renderable = fallbackRenderable\n }\n state.tableContentCache = undefined\n continue\n }\n\n if (state.renderable instanceof TextTableRenderable) {\n state.renderable.content = cache.content\n this.applyTableRenderableOptions(state.renderable, this.resolveTableRenderableOptions())\n state.renderable.marginBottom = marginBottom\n state.tableContentCache = cache\n continue\n }\n\n state.renderable.destroyRecursively()\n const tableRenderable = this.createTextTableRenderable(cache.content, `${this.id}-block-${i}`, marginBottom)\n this.add(tableRenderable, i)\n state.renderable = tableRenderable\n state.tableContentCache = cache\n continue\n }\n\n if (state.renderable instanceof CodeRenderable) {\n this.applyMarkdownCodeRenderable(\n state.renderable,\n this.getTopLevelBlockRaw(state.token) ?? state.token.raw,\n marginBottom,\n undefined,\n this.createInitialStyledText(state.token),\n )\n continue\n }\n\n state.renderable.destroyRecursively()\n const markdownRenderable = this.createMarkdownCodeRenderable(\n this.getTopLevelBlockRaw(state.token) ?? state.token.raw,\n `${this.id}-block-${i}`,\n marginBottom,\n this._linkifyMarkdownChunks,\n undefined,\n this.createInitialStyledText(state.token),\n )\n this.add(markdownRenderable, i)\n state.renderable = markdownRenderable\n }\n }\n\n public clearCache(): void {\n this._parseState = null\n this.clearBlockStates()\n this.updateBlocks()\n this.requestRender()\n }\n\n public refreshStyles(): void {\n this._styleDirty = false\n this.rerenderBlocks()\n this.requestRender()\n }\n\n protected renderSelf(buffer: OptimizedBuffer, deltaTime: number): void {\n // Check if style/conceal changed - re-render blocks before rendering\n if (this._styleDirty) {\n this._styleDirty = false\n this.rerenderBlocks()\n }\n super.renderSelf(buffer, deltaTime)\n }\n}\n",
|
|
66
66
|
"import { type RenderableOptions, Renderable } from \"../Renderable.js\"\nimport { type RenderContext } from \"../types.js\"\nimport { type ColorInput, RGBA, parseColor } from \"../lib/RGBA.js\"\nimport { OptimizedBuffer } from \"../buffer.js\"\n\nconst defaultThumbBackgroundColor = RGBA.fromHex(\"#9a9ea3\")\nconst defaultTrackBackgroundColor = RGBA.fromHex(\"#252527\")\n\nexport interface SliderOptions extends RenderableOptions<SliderRenderable> {\n orientation: \"vertical\" | \"horizontal\"\n value?: number\n min?: number\n max?: number\n viewPortSize?: number\n backgroundColor?: ColorInput\n foregroundColor?: ColorInput\n onChange?: (value: number) => void\n}\n\nexport class SliderRenderable extends Renderable {\n public readonly orientation: \"vertical\" | \"horizontal\"\n private _value: number\n private _min: number\n private _max: number\n private _viewPortSize: number\n private _backgroundColor: RGBA\n private _foregroundColor: RGBA\n private _onChange?: (value: number) => void\n\n constructor(ctx: RenderContext, options: SliderOptions) {\n super(ctx, { flexShrink: 0, ...options })\n this.orientation = options.orientation\n this._min = options.min ?? 0\n this._max = options.max ?? 100\n this._value = options.value ?? this._min\n this._viewPortSize = options.viewPortSize ?? Math.max(1, (this._max - this._min) * 0.1)\n this._onChange = options.onChange\n this._backgroundColor = options.backgroundColor ? parseColor(options.backgroundColor) : defaultTrackBackgroundColor\n this._foregroundColor = options.foregroundColor ? parseColor(options.foregroundColor) : defaultThumbBackgroundColor\n\n this.setupMouseHandling()\n }\n\n get value(): number {\n return this._value\n }\n\n set value(newValue: number) {\n const clamped = Math.max(this._min, Math.min(this._max, newValue))\n if (clamped !== this._value) {\n this._value = clamped\n this._onChange?.(clamped)\n this.emit(\"change\", { value: clamped })\n this.requestRender()\n }\n }\n\n get min(): number {\n return this._min\n }\n\n set min(newMin: number) {\n if (newMin !== this._min) {\n this._min = newMin\n if (this._value < newMin) {\n this.value = newMin\n }\n this.requestRender()\n }\n }\n\n get max(): number {\n return this._max\n }\n\n set max(newMax: number) {\n if (newMax !== this._max) {\n this._max = newMax\n if (this._value > newMax) {\n this.value = newMax\n }\n this.requestRender()\n }\n }\n\n set viewPortSize(size: number) {\n const clampedSize = Math.max(0.01, Math.min(size, this._max - this._min))\n if (clampedSize !== this._viewPortSize) {\n this._viewPortSize = clampedSize\n this.requestRender()\n }\n }\n\n get viewPortSize(): number {\n return this._viewPortSize\n }\n\n get backgroundColor(): RGBA {\n return this._backgroundColor\n }\n\n set backgroundColor(value: ColorInput) {\n this._backgroundColor = parseColor(value)\n this.requestRender()\n }\n\n get foregroundColor(): RGBA {\n return this._foregroundColor\n }\n\n set foregroundColor(value: ColorInput) {\n this._foregroundColor = parseColor(value)\n this.requestRender()\n }\n\n private calculateDragOffsetVirtual(event: any): number {\n const trackStart = this.orientation === \"vertical\" ? this.y : this.x\n const mousePos = (this.orientation === \"vertical\" ? event.y : event.x) - trackStart\n const virtualMousePos = Math.max(\n 0,\n Math.min((this.orientation === \"vertical\" ? this.height : this.width) * 2, mousePos * 2),\n )\n const virtualThumbStart = this.getVirtualThumbStart()\n const virtualThumbSize = this.getVirtualThumbSize()\n\n return Math.max(0, Math.min(virtualThumbSize, virtualMousePos - virtualThumbStart))\n }\n\n private setupMouseHandling(): void {\n let isDragging = false\n let dragOffsetVirtual = 0\n\n this.onMouseDown = (event) => {\n event.stopPropagation()\n event.preventDefault()\n\n const thumb = this.getThumbRect()\n const inThumb =\n event.x >= thumb.x && event.x < thumb.x + thumb.width && event.y >= thumb.y && event.y < thumb.y + thumb.height\n\n if (inThumb) {\n isDragging = true\n\n dragOffsetVirtual = this.calculateDragOffsetVirtual(event)\n } else {\n this.updateValueFromMouseDirect(event)\n isDragging = true\n\n dragOffsetVirtual = this.calculateDragOffsetVirtual(event)\n }\n }\n\n this.onMouseDrag = (event) => {\n if (!isDragging) return\n event.stopPropagation()\n this.updateValueFromMouseWithOffset(event, dragOffsetVirtual)\n }\n\n this.onMouseUp = (event) => {\n if (isDragging) {\n this.updateValueFromMouseWithOffset(event, dragOffsetVirtual)\n }\n isDragging = false\n }\n }\n\n private updateValueFromMouseDirect(event: any): void {\n const trackStart = this.orientation === \"vertical\" ? this.y : this.x\n const trackSize = this.orientation === \"vertical\" ? this.height : this.width\n const mousePos = this.orientation === \"vertical\" ? event.y : event.x\n\n const relativeMousePos = mousePos - trackStart\n const clampedMousePos = Math.max(0, Math.min(trackSize, relativeMousePos))\n const ratio = trackSize === 0 ? 0 : clampedMousePos / trackSize\n const range = this._max - this._min\n const newValue = this._min + ratio * range\n\n this.value = newValue\n }\n\n private updateValueFromMouseWithOffset(event: any, offsetVirtual: number): void {\n const trackStart = this.orientation === \"vertical\" ? this.y : this.x\n const trackSize = this.orientation === \"vertical\" ? this.height : this.width\n const mousePos = this.orientation === \"vertical\" ? event.y : event.x\n\n const virtualTrackSize = trackSize * 2\n const relativeMousePos = mousePos - trackStart\n const clampedMousePos = Math.max(0, Math.min(trackSize, relativeMousePos))\n const virtualMousePos = clampedMousePos * 2\n\n const virtualThumbSize = this.getVirtualThumbSize()\n const maxThumbStart = Math.max(0, virtualTrackSize - virtualThumbSize)\n\n let desiredThumbStart = virtualMousePos - offsetVirtual\n desiredThumbStart = Math.max(0, Math.min(maxThumbStart, desiredThumbStart))\n\n const ratio = maxThumbStart === 0 ? 0 : desiredThumbStart / maxThumbStart\n const range = this._max - this._min\n const newValue = this._min + ratio * range\n\n this.value = newValue\n }\n\n private getThumbRect(): { x: number; y: number; width: number; height: number } {\n const virtualThumbSize = this.getVirtualThumbSize()\n const virtualThumbStart = this.getVirtualThumbStart()\n\n const realThumbStart = Math.floor(virtualThumbStart / 2)\n const realThumbSize = Math.ceil((virtualThumbStart + virtualThumbSize) / 2) - realThumbStart\n\n if (this.orientation === \"vertical\") {\n return {\n x: this.x,\n y: this.y + realThumbStart,\n width: this.width,\n height: Math.max(1, realThumbSize),\n }\n } else {\n return {\n x: this.x + realThumbStart,\n y: this.y,\n width: Math.max(1, realThumbSize),\n height: this.height,\n }\n }\n }\n\n protected renderSelf(buffer: OptimizedBuffer): void {\n if (this.orientation === \"horizontal\") {\n this.renderHorizontal(buffer)\n } else {\n this.renderVertical(buffer)\n }\n }\n\n private renderHorizontal(buffer: OptimizedBuffer): void {\n const virtualThumbSize = this.getVirtualThumbSize()\n const virtualThumbStart = this.getVirtualThumbStart()\n const virtualThumbEnd = virtualThumbStart + virtualThumbSize\n\n buffer.fillRect(this.x, this.y, this.width, this.height, this._backgroundColor)\n\n const realStartCell = Math.floor(virtualThumbStart / 2)\n const realEndCell = Math.ceil(virtualThumbEnd / 2) - 1\n const startX = Math.max(0, realStartCell)\n const endX = Math.min(this.width - 1, realEndCell)\n\n for (let realX = startX; realX <= endX; realX++) {\n const virtualCellStart = realX * 2\n const virtualCellEnd = virtualCellStart + 2\n\n const thumbStartInCell = Math.max(virtualThumbStart, virtualCellStart)\n const thumbEndInCell = Math.min(virtualThumbEnd, virtualCellEnd)\n const coverage = thumbEndInCell - thumbStartInCell\n\n let char = \" \"\n\n if (coverage >= 2) {\n char = \"█\"\n } else {\n const isLeftHalf = thumbStartInCell === virtualCellStart\n if (isLeftHalf) {\n char = \"▌\"\n } else {\n char = \"▐\"\n }\n }\n\n for (let y = 0; y < this.height; y++) {\n buffer.setCellWithAlphaBlending(this.x + realX, this.y + y, char, this._foregroundColor, this._backgroundColor)\n }\n }\n }\n\n private renderVertical(buffer: OptimizedBuffer): void {\n const virtualThumbSize = this.getVirtualThumbSize()\n const virtualThumbStart = this.getVirtualThumbStart()\n const virtualThumbEnd = virtualThumbStart + virtualThumbSize\n\n buffer.fillRect(this.x, this.y, this.width, this.height, this._backgroundColor)\n\n const realStartCell = Math.floor(virtualThumbStart / 2)\n const realEndCell = Math.ceil(virtualThumbEnd / 2) - 1\n const startY = Math.max(0, realStartCell)\n const endY = Math.min(this.height - 1, realEndCell)\n\n for (let realY = startY; realY <= endY; realY++) {\n const virtualCellStart = realY * 2\n const virtualCellEnd = virtualCellStart + 2\n\n const thumbStartInCell = Math.max(virtualThumbStart, virtualCellStart)\n const thumbEndInCell = Math.min(virtualThumbEnd, virtualCellEnd)\n const coverage = thumbEndInCell - thumbStartInCell\n\n let char = \" \"\n\n if (coverage >= 2) {\n char = \"█\"\n } else if (coverage > 0) {\n const virtualPositionInCell = thumbStartInCell - virtualCellStart\n if (virtualPositionInCell === 0) {\n char = \"▀\"\n } else {\n char = \"▄\"\n }\n }\n\n for (let x = 0; x < this.width; x++) {\n buffer.setCellWithAlphaBlending(this.x + x, this.y + realY, char, this._foregroundColor, this._backgroundColor)\n }\n }\n }\n\n private getVirtualThumbSize(): number {\n const virtualTrackSize = this.orientation === \"vertical\" ? this.height * 2 : this.width * 2\n const range = this._max - this._min\n\n if (range === 0) return virtualTrackSize\n\n const viewportSize = Math.max(1, this._viewPortSize)\n const contentSize = range + viewportSize\n\n if (contentSize <= viewportSize) return virtualTrackSize\n\n const thumbRatio = viewportSize / contentSize\n const calculatedSize = Math.floor(virtualTrackSize * thumbRatio)\n\n return Math.max(1, Math.min(calculatedSize, virtualTrackSize))\n }\n\n private getVirtualThumbStart(): number {\n const virtualTrackSize = this.orientation === \"vertical\" ? this.height * 2 : this.width * 2\n const range = this._max - this._min\n\n if (range === 0) return 0\n\n const valueRatio = (this._value - this._min) / range\n const virtualThumbSize = this.getVirtualThumbSize()\n\n return Math.round(valueRatio * (virtualTrackSize - virtualThumbSize))\n }\n}\n",
|
|
67
67
|
"import type { OptimizedBuffer } from \"../buffer.js\"\nimport { parseColor, RGBA, type ColorInput } from \"../lib/index.js\"\nimport type { KeyEvent } from \"../lib/KeyHandler.js\"\nimport { stringWidth } from \"../platform/runtime.js\"\nimport { Renderable, type RenderableOptions } from \"../Renderable.js\"\nimport type { RenderContext, Timeout } from \"../types.js\"\nimport { type BoxOptions } from \"./Box.js\"\nimport { SliderRenderable, type SliderOptions } from \"./Slider.js\"\n\nexport interface ScrollBarOptions extends RenderableOptions<ScrollBarRenderable> {\n orientation: \"vertical\" | \"horizontal\"\n showArrows?: boolean\n arrowOptions?: Omit<ArrowOptions, \"direction\">\n trackOptions?: Partial<SliderOptions>\n onChange?: (position: number) => void\n}\n\nexport type ScrollUnit = \"absolute\" | \"viewport\" | \"content\" | \"step\"\n\nexport class ScrollBarRenderable extends Renderable {\n public readonly slider: SliderRenderable\n public readonly startArrow: ArrowRenderable\n public readonly endArrow: ArrowRenderable\n public readonly orientation: \"vertical\" | \"horizontal\"\n\n protected _focusable: boolean = true\n\n private _scrollSize = 0\n private _scrollPosition = 0\n private _viewportSize = 0\n private _showArrows = false\n private _manualVisibility = false\n\n private _onChange: ((position: number) => void) | undefined\n\n scrollStep: number | undefined | null = null\n\n get visible(): boolean {\n return super.visible\n }\n\n set visible(value: boolean) {\n this._manualVisibility = true\n super.visible = value\n }\n\n public resetVisibilityControl(): void {\n this._manualVisibility = false\n this.recalculateVisibility()\n }\n\n get scrollSize(): number {\n return this._scrollSize\n }\n\n get scrollPosition(): number {\n return this._scrollPosition\n }\n\n get viewportSize(): number {\n return this._viewportSize\n }\n\n set scrollSize(value: number) {\n if (value === this.scrollSize) return\n this._scrollSize = value\n this.recalculateVisibility()\n this.updateSliderFromScrollState()\n this.scrollPosition = this.scrollPosition\n }\n\n set scrollPosition(value: number) {\n const newPosition = Math.round(Math.min(Math.max(0, value), this.scrollSize - this.viewportSize))\n if (newPosition !== this._scrollPosition) {\n this._scrollPosition = newPosition\n this.updateSliderFromScrollState()\n // Events are triggered by the slider change event\n // this._onChange?.(newPosition)\n // this.emit(\"change\", { position: newPosition })\n }\n }\n\n set viewportSize(value: number) {\n if (value === this.viewportSize) return\n this._viewportSize = value\n this.slider.viewPortSize = Math.max(1, this._viewportSize)\n this.recalculateVisibility()\n this.updateSliderFromScrollState()\n this.scrollPosition = this.scrollPosition\n }\n\n get showArrows(): boolean {\n return this._showArrows\n }\n\n set showArrows(value: boolean) {\n if (value === this._showArrows) return\n this._showArrows = value\n this.startArrow.visible = value\n this.endArrow.visible = value\n }\n\n constructor(\n ctx: RenderContext,\n { trackOptions, arrowOptions, orientation, showArrows = false, ...options }: ScrollBarOptions,\n ) {\n super(ctx, {\n flexDirection: orientation === \"vertical\" ? \"column\" : \"row\",\n alignSelf: \"stretch\",\n alignItems: \"stretch\",\n ...(options as BoxOptions),\n })\n\n this._onChange = options.onChange\n\n this.orientation = orientation\n this._showArrows = showArrows\n\n const scrollRange = Math.max(0, this._scrollSize - this._viewportSize)\n\n const defaultStepSize = Math.max(1, this._viewportSize)\n const stepSize = trackOptions?.viewPortSize ?? defaultStepSize\n\n this.slider = new SliderRenderable(ctx, {\n orientation,\n min: 0,\n max: scrollRange,\n value: this._scrollPosition,\n viewPortSize: stepSize,\n onChange: (value) => {\n this._scrollPosition = Math.round(value)\n this._onChange?.(this._scrollPosition)\n this.emit(\"change\", { position: this._scrollPosition })\n },\n ...(orientation === \"vertical\"\n ? {\n width: Math.max(1, Math.min(2, this.width)),\n height: \"100%\",\n marginLeft: \"auto\",\n }\n : {\n width: \"100%\",\n height: 1,\n marginTop: \"auto\",\n }),\n flexGrow: 1,\n flexShrink: 1,\n ...trackOptions,\n })\n\n this.updateSliderFromScrollState()\n\n const arrowOpts = arrowOptions\n ? {\n foregroundColor: arrowOptions.backgroundColor,\n backgroundColor: arrowOptions.backgroundColor,\n attributes: arrowOptions.attributes,\n ...arrowOptions,\n }\n : {}\n\n this.startArrow = new ArrowRenderable(ctx, {\n alignSelf: \"center\",\n visible: this.showArrows,\n direction: this.orientation === \"vertical\" ? \"up\" : \"left\",\n height: this.orientation === \"vertical\" ? 1 : 1,\n ...arrowOpts,\n })\n\n this.endArrow = new ArrowRenderable(ctx, {\n alignSelf: \"center\",\n visible: this.showArrows,\n direction: this.orientation === \"vertical\" ? \"down\" : \"right\",\n height: this.orientation === \"vertical\" ? 1 : 1,\n ...arrowOpts,\n })\n\n this.add(this.startArrow)\n this.add(this.slider)\n this.add(this.endArrow)\n\n let startArrowMouseTimeout = undefined as Timeout\n let endArrowMouseTimeout = undefined as Timeout\n\n this.startArrow.onMouseDown = (event) => {\n event.stopPropagation()\n event.preventDefault()\n\n this.scrollBy(-0.5, \"viewport\")\n\n startArrowMouseTimeout = setTimeout(() => {\n this.scrollBy(-0.5, \"viewport\")\n\n startArrowMouseTimeout = setInterval(() => {\n this.scrollBy(-0.2, \"viewport\")\n }, 200)\n }, 500)\n }\n\n this.startArrow.onMouseUp = (event) => {\n event.stopPropagation()\n clearInterval(startArrowMouseTimeout!)\n }\n\n this.endArrow.onMouseDown = (event) => {\n event.stopPropagation()\n event.preventDefault()\n\n this.scrollBy(0.5, \"viewport\")\n\n endArrowMouseTimeout = setTimeout(() => {\n this.scrollBy(0.5, \"viewport\")\n\n endArrowMouseTimeout = setInterval(() => {\n this.scrollBy(0.2, \"viewport\")\n }, 200)\n }, 500)\n }\n\n this.endArrow.onMouseUp = (event) => {\n event.stopPropagation()\n clearInterval(endArrowMouseTimeout!)\n }\n }\n\n public set arrowOptions(options: ScrollBarOptions[\"arrowOptions\"]) {\n Object.assign(this.startArrow, options)\n Object.assign(this.endArrow, options)\n this.requestRender()\n }\n\n public set trackOptions(options: ScrollBarOptions[\"trackOptions\"]) {\n Object.assign(this.slider, options)\n this.requestRender()\n }\n\n private updateSliderFromScrollState(): void {\n const scrollRange = Math.max(0, this._scrollSize - this._viewportSize)\n\n this.slider.min = 0\n this.slider.max = scrollRange\n\n this.slider.value = Math.min(this._scrollPosition, scrollRange)\n }\n\n public scrollBy(delta: number, unit: ScrollUnit = \"absolute\"): void {\n const multiplier =\n unit === \"viewport\"\n ? this.viewportSize\n : unit === \"content\"\n ? this.scrollSize\n : unit === \"step\"\n ? (this.scrollStep ?? 1)\n : 1\n\n const resolvedDelta = multiplier * delta\n this.scrollPosition += resolvedDelta\n }\n\n private recalculateVisibility(): void {\n if (!this._manualVisibility) {\n const sizeRatio = this.scrollSize <= this.viewportSize ? 1 : this.viewportSize / this.scrollSize\n super.visible = sizeRatio < 1\n }\n }\n\n public handleKeyPress(key: KeyEvent): boolean {\n switch (key.name) {\n case \"left\":\n case \"h\":\n if (this.orientation !== \"horizontal\") return false\n this.scrollBy(-1 / 5, \"viewport\")\n return true\n case \"right\":\n case \"l\":\n if (this.orientation !== \"horizontal\") return false\n this.scrollBy(1 / 5, \"viewport\")\n return true\n case \"up\":\n case \"k\":\n if (this.orientation !== \"vertical\") return false\n this.scrollBy(-1 / 5, \"viewport\")\n return true\n case \"down\":\n case \"j\":\n if (this.orientation !== \"vertical\") return false\n this.scrollBy(1 / 5, \"viewport\")\n return true\n case \"pageup\":\n this.scrollBy(-1 / 2, \"viewport\")\n return true\n case \"pagedown\":\n this.scrollBy(1 / 2, \"viewport\")\n return true\n case \"home\":\n this.scrollBy(-1, \"content\")\n return true\n case \"end\":\n this.scrollBy(1, \"content\")\n return true\n }\n\n return false\n }\n}\n\nexport interface ArrowOptions extends RenderableOptions<ArrowRenderable> {\n direction: \"up\" | \"down\" | \"left\" | \"right\"\n foregroundColor?: ColorInput\n backgroundColor?: ColorInput\n attributes?: number\n arrowChars?: {\n up?: string\n down?: string\n left?: string\n right?: string\n }\n}\n\nexport class ArrowRenderable extends Renderable {\n private _direction: \"up\" | \"down\" | \"left\" | \"right\"\n private _foregroundColor: RGBA\n private _backgroundColor: RGBA\n private _attributes: number\n private _arrowChars: {\n up: string\n down: string\n left: string\n right: string\n }\n\n constructor(ctx: RenderContext, options: ArrowOptions) {\n super(ctx, options)\n this._direction = options.direction\n this._foregroundColor = options.foregroundColor ? parseColor(options.foregroundColor) : RGBA.fromValues(1, 1, 1, 1)\n this._backgroundColor = options.backgroundColor ? parseColor(options.backgroundColor) : RGBA.fromValues(0, 0, 0, 0)\n this._attributes = options.attributes ?? 0\n\n this._arrowChars = {\n up: \"▲\",\n down: \"▼\",\n left: \"◀\",\n right: \"▶\",\n ...options.arrowChars,\n }\n\n if (!options.width) {\n this.width = stringWidth(this.getArrowChar())\n }\n }\n\n get direction(): \"up\" | \"down\" | \"left\" | \"right\" {\n return this._direction\n }\n\n set direction(value: \"up\" | \"down\" | \"left\" | \"right\") {\n if (this._direction !== value) {\n this._direction = value\n this.requestRender()\n }\n }\n\n get foregroundColor(): RGBA {\n return this._foregroundColor\n }\n\n set foregroundColor(value: ColorInput) {\n if (this._foregroundColor !== value) {\n this._foregroundColor = parseColor(value)\n this.requestRender()\n }\n }\n\n get backgroundColor(): RGBA {\n return this._backgroundColor\n }\n\n set backgroundColor(value: ColorInput) {\n if (this._backgroundColor !== value) {\n this._backgroundColor = parseColor(value)\n this.requestRender()\n }\n }\n\n get attributes(): number {\n return this._attributes\n }\n\n set attributes(value: number) {\n if (this._attributes !== value) {\n this._attributes = value\n this.requestRender()\n }\n }\n\n set arrowChars(value: ArrowOptions[\"arrowChars\"]) {\n this._arrowChars = {\n ...this._arrowChars,\n ...value,\n }\n this.requestRender()\n }\n\n protected renderSelf(buffer: OptimizedBuffer): void {\n const char = this.getArrowChar()\n buffer.drawText(char, this.x, this.y, this._foregroundColor, this._backgroundColor, this._attributes)\n }\n\n private getArrowChar(): string {\n switch (this._direction) {\n case \"up\":\n return this._arrowChars.up\n case \"down\":\n return this._arrowChars.down\n case \"left\":\n return this._arrowChars.left\n case \"right\":\n return this._arrowChars.right\n default:\n return \"?\"\n }\n }\n}\n",
|
|
68
68
|
"import { type KeyEvent } from \"../lib/index.js\"\nimport { getObjectsInViewport } from \"../lib/objects-in-viewport.js\"\nimport { LinearScrollAccel, MacOSScrollAccel, type ScrollAcceleration } from \"../lib/scroll-acceleration.js\"\nimport type { BaseRenderable, Renderable, RenderableOptions } from \"../Renderable.js\"\nimport type { MouseEvent } from \"../renderer.js\"\nimport type { RenderContext } from \"../types.js\"\nimport { BoxRenderable, type BoxOptions } from \"./Box.js\"\nimport type { VNode } from \"./composition/vnode.js\"\nimport { ScrollBarRenderable, type ScrollBarOptions, type ScrollUnit } from \"./ScrollBar.js\"\n\nclass ContentRenderable extends BoxRenderable {\n private viewport: BoxRenderable\n private _viewportCulling: boolean\n\n constructor(\n ctx: RenderContext,\n viewport: BoxRenderable,\n viewportCulling: boolean,\n options: RenderableOptions<BoxRenderable>,\n ) {\n super(ctx, options)\n this.viewport = viewport\n this._viewportCulling = viewportCulling\n }\n\n get viewportCulling(): boolean {\n return this._viewportCulling\n }\n\n set viewportCulling(value: boolean) {\n this._viewportCulling = value\n }\n\n protected _hasVisibleChildFilter(): boolean {\n return this._viewportCulling\n }\n\n protected _getVisibleChildren(): number[] {\n if (this._viewportCulling) {\n // The viewport is in terminal coordinates, so culling has to compare it\n // against each child's absolute screen position rather than local x/y.\n return getObjectsInViewport(\n {\n x: this.viewport.screenX,\n y: this.viewport.screenY,\n width: this.viewport.width,\n height: this.viewport.height,\n },\n this.getChildrenSortedByPrimaryAxis(),\n this.primaryAxis,\n 0,\n ).map((child) => child.num)\n }\n return super._getVisibleChildren()\n }\n}\n\nexport interface ScrollBoxOptions extends BoxOptions<ScrollBoxRenderable> {\n rootOptions?: BoxOptions\n wrapperOptions?: BoxOptions\n viewportOptions?: BoxOptions\n contentOptions?: BoxOptions\n scrollbarOptions?: Omit<ScrollBarOptions, \"orientation\">\n verticalScrollbarOptions?: Omit<ScrollBarOptions, \"orientation\">\n horizontalScrollbarOptions?: Omit<ScrollBarOptions, \"orientation\">\n stickyScroll?: boolean\n stickyStart?: \"bottom\" | \"top\" | \"left\" | \"right\"\n scrollX?: boolean\n scrollY?: boolean\n scrollAcceleration?: ScrollAcceleration\n viewportCulling?: boolean\n}\n\nconst SCROLLBOX_PADDING_KEYS = [\n \"padding\",\n \"paddingX\",\n \"paddingY\",\n \"paddingTop\",\n \"paddingRight\",\n \"paddingBottom\",\n \"paddingLeft\",\n] as const\n\ntype ScrollBoxPaddingKey = (typeof SCROLLBOX_PADDING_KEYS)[number]\ntype ScrollBoxPaddingOptions = Pick<ScrollBoxOptions, ScrollBoxPaddingKey>\n\nfunction pickScrollBoxPadding(options: Partial<ScrollBoxOptions> | undefined): Partial<ScrollBoxPaddingOptions> {\n if (!options) return {}\n\n const picked: Partial<ScrollBoxPaddingOptions> = {}\n for (const key of SCROLLBOX_PADDING_KEYS) {\n const value = options[key]\n if (value !== undefined) {\n picked[key] = value\n }\n }\n\n return picked\n}\n\nfunction stripScrollBoxPadding<T extends object>(options: T): Omit<T, ScrollBoxPaddingKey> {\n const sanitized = { ...options }\n for (const key of SCROLLBOX_PADDING_KEYS) {\n delete (sanitized as Partial<Record<ScrollBoxPaddingKey, unknown>>)[key]\n }\n return sanitized as Omit<T, ScrollBoxPaddingKey>\n}\n\nexport class ScrollBoxRenderable extends BoxRenderable {\n static idCounter = 0\n private internalId = 0\n public readonly wrapper: BoxRenderable\n public readonly viewport: BoxRenderable\n public readonly content: ContentRenderable\n public readonly horizontalScrollBar: ScrollBarRenderable\n public readonly verticalScrollBar: ScrollBarRenderable\n\n protected _focusable: boolean = true\n private selectionListener?: () => void\n\n private autoScrollMouseX: number = 0\n private autoScrollMouseY: number = 0\n private readonly autoScrollThresholdVertical = 3\n private readonly autoScrollThresholdHorizontal = 3\n private readonly autoScrollSpeedSlow = 6\n private readonly autoScrollSpeedMedium = 36\n private readonly autoScrollSpeedFast = 72\n private isAutoScrolling: boolean = false\n private cachedAutoScrollSpeed: number = 3\n private autoScrollAccumulatorX: number = 0\n private autoScrollAccumulatorY: number = 0\n\n private scrollAccumulatorX: number = 0\n private scrollAccumulatorY: number = 0\n\n private _stickyScroll: boolean\n private _stickyScrollTop: boolean = false\n private _stickyScrollBottom: boolean = false\n private _stickyScrollLeft: boolean = false\n private _stickyScrollRight: boolean = false\n private _stickyStart?: \"bottom\" | \"top\" | \"left\" | \"right\"\n private _hasManualScroll: boolean = false\n private _isApplyingStickyScroll: boolean = false\n private scrollAccel: ScrollAcceleration\n\n get stickyScroll(): boolean {\n return this._stickyScroll\n }\n\n set stickyScroll(value: boolean) {\n this._stickyScroll = value\n this.updateStickyState()\n }\n\n get stickyStart(): \"bottom\" | \"top\" | \"left\" | \"right\" | undefined {\n return this._stickyStart\n }\n\n set stickyStart(value: \"bottom\" | \"top\" | \"left\" | \"right\" | undefined) {\n this._stickyStart = value\n this.updateStickyState()\n }\n\n get scrollTop(): number {\n return this.verticalScrollBar.scrollPosition\n }\n\n set scrollTop(value: number) {\n this.verticalScrollBar.scrollPosition = value\n this.updateStickyState()\n }\n\n get scrollLeft(): number {\n return this.horizontalScrollBar.scrollPosition\n }\n\n set scrollLeft(value: number) {\n this.horizontalScrollBar.scrollPosition = value\n this.updateStickyState()\n }\n\n get scrollWidth(): number {\n return this.horizontalScrollBar.scrollSize\n }\n\n get scrollHeight(): number {\n return this.verticalScrollBar.scrollSize\n }\n\n private updateStickyState(): void {\n if (!this._stickyScroll) {\n this.syncManualScrollState()\n return\n }\n\n const maxScrollTop = Math.max(0, this.scrollHeight - this.viewport.height)\n const maxScrollLeft = Math.max(0, this.scrollWidth - this.viewport.width)\n\n if (this.scrollTop <= 0) {\n this._stickyScrollTop = true\n this._stickyScrollBottom = false\n } else if (this.scrollTop >= maxScrollTop) {\n this._stickyScrollTop = false\n this._stickyScrollBottom = true\n } else {\n this._stickyScrollTop = false\n this._stickyScrollBottom = false\n }\n\n if (this.scrollLeft <= 0) {\n this._stickyScrollLeft = true\n this._stickyScrollRight = false\n } else if (this.scrollLeft >= maxScrollLeft) {\n this._stickyScrollLeft = false\n this._stickyScrollRight = true\n } else {\n this._stickyScrollLeft = false\n this._stickyScrollRight = false\n }\n\n this.syncManualScrollState()\n }\n\n private syncManualScrollState(): void {\n if (!this._stickyScroll) {\n this._hasManualScroll = false\n return\n }\n\n const maxScrollTop = Math.max(0, this.scrollHeight - this.viewport.height)\n const maxScrollLeft = Math.max(0, this.scrollWidth - this.viewport.width)\n const hasScrollableContent = maxScrollTop > 1 || maxScrollLeft > 1\n\n if (this._isApplyingStickyScroll) {\n if (this._hasManualScroll && hasScrollableContent && this.isAtStickyPosition()) {\n this._hasManualScroll = false\n }\n return\n }\n\n this._hasManualScroll = hasScrollableContent && !this.isAtStickyPosition()\n }\n\n private applyStickyStart(stickyStart: \"bottom\" | \"top\" | \"left\" | \"right\"): void {\n const wasApplyingStickyScroll = this._isApplyingStickyScroll\n this._isApplyingStickyScroll = true\n try {\n switch (stickyStart) {\n case \"top\":\n this._stickyScrollTop = true\n this._stickyScrollBottom = false\n this.verticalScrollBar.scrollPosition = 0\n break\n case \"bottom\":\n this._stickyScrollTop = false\n this._stickyScrollBottom = true\n this.verticalScrollBar.scrollPosition = Math.max(0, this.scrollHeight - this.viewport.height)\n break\n case \"left\":\n this._stickyScrollLeft = true\n this._stickyScrollRight = false\n this.horizontalScrollBar.scrollPosition = 0\n break\n case \"right\":\n this._stickyScrollLeft = false\n this._stickyScrollRight = true\n this.horizontalScrollBar.scrollPosition = Math.max(0, this.scrollWidth - this.viewport.width)\n break\n }\n } finally {\n this._isApplyingStickyScroll = wasApplyingStickyScroll\n }\n }\n\n constructor(ctx: RenderContext, options: ScrollBoxOptions) {\n const {\n wrapperOptions,\n viewportOptions,\n contentOptions,\n rootOptions,\n scrollbarOptions,\n verticalScrollbarOptions,\n horizontalScrollbarOptions,\n stickyScroll = false,\n stickyStart,\n scrollX = false,\n scrollY = true,\n scrollAcceleration,\n viewportCulling = true,\n ...rootBoxOptions\n } = options\n\n const forwardedContentPadding = {\n ...pickScrollBoxPadding(rootBoxOptions),\n ...pickScrollBoxPadding(rootOptions),\n }\n\n const sanitizedRootBoxOptions = stripScrollBoxPadding(rootBoxOptions)\n const sanitizedRootOptions = rootOptions ? stripScrollBoxPadding(rootOptions) : undefined\n const mergedContentOptions = {\n ...forwardedContentPadding,\n ...contentOptions,\n }\n\n // Root\n super(ctx, {\n flexDirection: \"row\",\n alignItems: \"stretch\",\n ...(sanitizedRootBoxOptions as BoxOptions),\n ...(sanitizedRootOptions as BoxOptions),\n })\n\n this.internalId = ScrollBoxRenderable.idCounter++\n this._stickyScroll = stickyScroll\n this._stickyStart = stickyStart\n this.scrollAccel = scrollAcceleration ?? new LinearScrollAccel()\n\n this.wrapper = new BoxRenderable(ctx, {\n flexDirection: \"column\",\n flexGrow: 1,\n ...wrapperOptions,\n id: `scroll-box-wrapper-${this.internalId}`,\n })\n super.add(this.wrapper)\n\n this.viewport = new BoxRenderable(ctx, {\n flexDirection: \"column\",\n flexGrow: 1,\n // NOTE: Overflow scroll makes the content size behave weird\n // when the scrollbox is in a container with max-width/height\n overflow: \"hidden\",\n onSizeChange: () => {\n this.recalculateBarProps()\n },\n ...viewportOptions,\n id: `scroll-box-viewport-${this.internalId}`,\n })\n this.wrapper.add(this.viewport)\n\n this.content = new ContentRenderable(ctx, this.viewport, viewportCulling, {\n alignSelf: \"flex-start\",\n flexShrink: 0,\n ...(scrollX ? { minWidth: \"100%\" } : { minWidth: \"100%\", maxWidth: \"100%\" }),\n ...(scrollY ? { minHeight: \"100%\" } : { minHeight: \"100%\", maxHeight: \"100%\" }),\n onSizeChange: () => {\n this.recalculateBarProps()\n },\n ...mergedContentOptions,\n id: `scroll-box-content-${this.internalId}`,\n })\n this.viewport.add(this.content)\n\n this.verticalScrollBar = new ScrollBarRenderable(ctx, {\n ...scrollbarOptions,\n ...verticalScrollbarOptions,\n arrowOptions: {\n ...scrollbarOptions?.arrowOptions,\n ...verticalScrollbarOptions?.arrowOptions,\n },\n id: `scroll-box-vertical-scrollbar-${this.internalId}`,\n orientation: \"vertical\",\n onChange: (position) => {\n this.content.translateY = -position\n this.updateStickyState()\n },\n })\n super.add(this.verticalScrollBar)\n\n this.horizontalScrollBar = new ScrollBarRenderable(ctx, {\n ...scrollbarOptions,\n ...horizontalScrollbarOptions,\n arrowOptions: {\n ...scrollbarOptions?.arrowOptions,\n ...horizontalScrollbarOptions?.arrowOptions,\n },\n id: `scroll-box-horizontal-scrollbar-${this.internalId}`,\n orientation: \"horizontal\",\n onChange: (position) => {\n this.content.translateX = -position\n this.updateStickyState()\n },\n })\n this.wrapper.add(this.horizontalScrollBar)\n\n this.recalculateBarProps()\n\n if (stickyStart && stickyScroll) {\n this.applyStickyStart(stickyStart)\n }\n\n this.selectionListener = () => {\n const selection = this._ctx.getSelection()\n if (!selection || !selection.isDragging) {\n this.stopAutoScroll()\n }\n }\n this._ctx.on(\"selection\", this.selectionListener)\n }\n\n protected onUpdate(deltaTime: number): void {\n this.handleAutoScroll(deltaTime)\n }\n\n public scrollBy(delta: number | { x: number; y: number }, unit: ScrollUnit = \"absolute\"): void {\n if (typeof delta === \"number\") {\n this.verticalScrollBar.scrollBy(delta, unit)\n } else {\n this.verticalScrollBar.scrollBy(delta.y, unit)\n this.horizontalScrollBar.scrollBy(delta.x, unit)\n }\n // Note: scrollBy doesn't need to set _hasManualScroll here because the scrollbar\n // change will trigger the scrollTop setter which handles it\n }\n\n public scrollChildIntoView(childId: string): void {\n const child = this.content.findDescendantById(childId)\n if (!child) return\n\n const getNearestDelta = (\n elementStart: number,\n elementEnd: number,\n viewportStart: number,\n viewportEnd: number,\n ): number => {\n const elementSize = elementEnd - elementStart\n const viewportSize = viewportEnd - viewportStart\n const elementStartOutside = elementStart < viewportStart\n const elementEndOutside = elementEnd > viewportEnd\n\n if (elementStartOutside && elementEndOutside) {\n return 0\n }\n\n if ((elementStartOutside && elementSize < viewportSize) || (elementEndOutside && elementSize > viewportSize)) {\n return elementStart - viewportStart\n }\n\n if ((elementStartOutside && elementSize > viewportSize) || (elementEndOutside && elementSize < viewportSize)) {\n return elementEnd - viewportEnd\n }\n\n return 0\n }\n\n const childTop = child.y\n const childBottom = child.y + child.height\n const viewportTop = this.viewport.y\n const viewportBottom = this.viewport.y + this.viewport.height\n\n const dy = getNearestDelta(childTop, childBottom, viewportTop, viewportBottom)\n\n const childLeft = child.x\n const childRight = child.x + child.width\n const viewportLeft = this.viewport.x\n const viewportRight = this.viewport.x + this.viewport.width\n\n const dx = getNearestDelta(childLeft, childRight, viewportLeft, viewportRight)\n\n if (dx !== 0 || dy !== 0) {\n this.scrollBy({ x: dx, y: dy })\n }\n }\n\n public scrollTo(position: number | { x: number; y: number }): void {\n if (typeof position === \"number\") {\n this.scrollTop = position\n } else {\n this.scrollTop = position.y\n this.scrollLeft = position.x\n }\n // Note: scrollTo doesn't need to set _hasManualScroll here because\n // the scrollTop/scrollLeft setters handle it\n }\n\n private isAtStickyPosition(): boolean {\n if (!this._stickyScroll || !this._stickyStart) {\n return false\n }\n\n const maxScrollTop = Math.max(0, this.scrollHeight - this.viewport.height)\n const maxScrollLeft = Math.max(0, this.scrollWidth - this.viewport.width)\n\n switch (this._stickyStart) {\n case \"top\":\n return this.scrollTop === 0\n case \"bottom\":\n return this.scrollTop >= maxScrollTop\n case \"left\":\n return this.scrollLeft === 0\n case \"right\":\n return this.scrollLeft >= maxScrollLeft\n default:\n return false\n }\n }\n\n private isAtStickyReengagePoint(\n stickyStart: \"bottom\" | \"top\" | \"left\" | \"right\",\n maxScrollTop: number,\n maxScrollLeft: number,\n ): boolean {\n switch (stickyStart) {\n case \"top\":\n return maxScrollTop > 0 && this.scrollTop <= 0\n case \"bottom\":\n return maxScrollTop > 0 && this.scrollTop >= maxScrollTop - 1\n case \"left\":\n return maxScrollLeft > 0 && this.scrollLeft <= 0\n case \"right\":\n return maxScrollLeft > 0 && this.scrollLeft >= maxScrollLeft - 1\n }\n }\n\n public add(obj: Renderable | VNode<any, any[]>, index?: number): number {\n return this.content.add(obj, index)\n }\n\n public insertBefore(obj: Renderable | VNode<any, any[]> | unknown, anchor?: Renderable | unknown): number {\n return this.content.insertBefore(obj, anchor)\n }\n\n public remove(child: BaseRenderable): void {\n // Internal parts (wrapper, scrollbars) are direct children of the root,\n // not of content. Route by actual parentage so destroy() and explicit\n // removals of internals detach them instead of silently no-oping through\n // the content delegation.\n if (child.parent === this) {\n super.remove(child)\n return\n }\n this.content.remove(child)\n }\n\n public getChildren(): Renderable[] {\n return this.content.getChildren()\n }\n\n public getRenderable(id: string): Renderable | undefined {\n return this.content.getRenderable(id)\n }\n\n protected onMouseEvent(event: MouseEvent): void {\n if (event.type === \"scroll\") {\n let dir = event.scroll?.direction\n if (event.modifiers.shift)\n dir = dir === \"up\" ? \"left\" : dir === \"down\" ? \"right\" : dir === \"right\" ? \"down\" : \"up\"\n\n const baseDelta = event.scroll?.delta ?? 0\n const now = Date.now()\n const multiplier = this.scrollAccel.tick(now)\n const scrollAmount = baseDelta * multiplier\n\n if (dir === \"up\") {\n this.scrollAccumulatorY -= scrollAmount\n const integerScroll = Math.trunc(this.scrollAccumulatorY)\n if (integerScroll !== 0) {\n this.scrollTop += integerScroll\n this.scrollAccumulatorY -= integerScroll\n }\n } else if (dir === \"down\") {\n this.scrollAccumulatorY += scrollAmount\n const integerScroll = Math.trunc(this.scrollAccumulatorY)\n if (integerScroll !== 0) {\n this.scrollTop += integerScroll\n this.scrollAccumulatorY -= integerScroll\n }\n } else if (dir === \"left\") {\n this.scrollAccumulatorX -= scrollAmount\n const integerScroll = Math.trunc(this.scrollAccumulatorX)\n if (integerScroll !== 0) {\n this.scrollLeft += integerScroll\n this.scrollAccumulatorX -= integerScroll\n }\n } else if (dir === \"right\") {\n this.scrollAccumulatorX += scrollAmount\n const integerScroll = Math.trunc(this.scrollAccumulatorX)\n if (integerScroll !== 0) {\n this.scrollLeft += integerScroll\n this.scrollAccumulatorX -= integerScroll\n }\n }\n\n this.syncManualScrollState()\n }\n\n if (event.type === \"drag\" && event.isDragging) {\n this.updateAutoScroll(event.x, event.y)\n } else if (event.type === \"up\") {\n this.stopAutoScroll()\n }\n }\n\n public handleKeyPress(key: KeyEvent): boolean {\n // Let scrollbars handle their own acceleration\n if (this.verticalScrollBar.handleKeyPress(key)) {\n this.scrollAccel.reset()\n this.resetScrollAccumulators()\n this.syncManualScrollState()\n return true\n }\n if (this.horizontalScrollBar.handleKeyPress(key)) {\n this.scrollAccel.reset()\n this.resetScrollAccumulators()\n this.syncManualScrollState()\n return true\n }\n return false\n }\n\n private resetScrollAccumulators(): void {\n this.scrollAccumulatorX = 0\n this.scrollAccumulatorY = 0\n }\n\n public startAutoScroll(mouseX: number, mouseY: number): void {\n this.stopAutoScroll()\n this.autoScrollMouseX = mouseX\n this.autoScrollMouseY = mouseY\n this.cachedAutoScrollSpeed = this.getAutoScrollSpeed(mouseX, mouseY)\n this.isAutoScrolling = true\n\n if (!this.live) {\n this.live = true\n }\n }\n\n public updateAutoScroll(mouseX: number, mouseY: number): void {\n this.autoScrollMouseX = mouseX\n this.autoScrollMouseY = mouseY\n\n // Cache the speed based on current mouse position\n this.cachedAutoScrollSpeed = this.getAutoScrollSpeed(mouseX, mouseY)\n\n const scrollX = this.getAutoScrollDirectionX(mouseX)\n const scrollY = this.getAutoScrollDirectionY(mouseY)\n\n if (scrollX === 0 && scrollY === 0) {\n this.stopAutoScroll()\n } else if (!this.isAutoScrolling) {\n this.startAutoScroll(mouseX, mouseY)\n }\n }\n\n public stopAutoScroll(): void {\n const wasAutoScrolling = this.isAutoScrolling\n this.isAutoScrolling = false\n this.autoScrollAccumulatorX = 0\n this.autoScrollAccumulatorY = 0\n\n // Only turn off live if no other features need it\n // For now, auto-scroll is the only feature using live, but this could be extended\n if (wasAutoScrolling && !this.hasOtherLiveReasons()) {\n this.live = false\n }\n }\n\n private hasOtherLiveReasons(): boolean {\n // Placeholder for future features that might need live mode\n // For now, always return false since auto-scroll is the only user\n return false\n }\n\n private handleAutoScroll(deltaTime: number): void {\n if (!this.isAutoScrolling) return\n\n const scrollX = this.getAutoScrollDirectionX(this.autoScrollMouseX)\n const scrollY = this.getAutoScrollDirectionY(this.autoScrollMouseY)\n const scrollAmount = this.cachedAutoScrollSpeed * (deltaTime / 1000)\n\n let scrolled = false\n\n if (scrollX !== 0) {\n this.autoScrollAccumulatorX += scrollX * scrollAmount\n const integerScrollX = Math.trunc(this.autoScrollAccumulatorX)\n if (integerScrollX !== 0) {\n this.scrollLeft += integerScrollX\n this.autoScrollAccumulatorX -= integerScrollX\n scrolled = true\n }\n }\n\n if (scrollY !== 0) {\n this.autoScrollAccumulatorY += scrollY * scrollAmount\n const integerScrollY = Math.trunc(this.autoScrollAccumulatorY)\n if (integerScrollY !== 0) {\n this.scrollTop += integerScrollY\n this.autoScrollAccumulatorY -= integerScrollY\n scrolled = true\n }\n }\n\n if (scrolled) {\n this._ctx.requestSelectionUpdate()\n }\n\n if (scrollX === 0 && scrollY === 0) {\n this.stopAutoScroll()\n }\n }\n\n private getAutoScrollDirectionX(mouseX: number): number {\n const relativeX = mouseX - this.x\n const distToLeft = relativeX\n const distToRight = this.width - relativeX\n\n if (distToLeft <= this.autoScrollThresholdHorizontal) {\n return this.scrollLeft > 0 ? -1 : 0\n } else if (distToRight <= this.autoScrollThresholdHorizontal) {\n const maxScrollLeft = this.scrollWidth - this.viewport.width\n return this.scrollLeft < maxScrollLeft ? 1 : 0\n }\n return 0\n }\n\n private getAutoScrollDirectionY(mouseY: number): number {\n const relativeY = mouseY - this.y\n const distToTop = relativeY\n const distToBottom = this.height - relativeY\n\n if (distToTop <= this.autoScrollThresholdVertical) {\n return this.scrollTop > 0 ? -1 : 0\n } else if (distToBottom <= this.autoScrollThresholdVertical) {\n const maxScrollTop = this.scrollHeight - this.viewport.height\n return this.scrollTop < maxScrollTop ? 1 : 0\n }\n return 0\n }\n\n private getAutoScrollSpeed(mouseX: number, mouseY: number): number {\n const relativeX = mouseX - this.x\n const relativeY = mouseY - this.y\n\n const distToLeft = relativeX\n const distToRight = this.width - relativeX\n const distToTop = relativeY\n const distToBottom = this.height - relativeY\n\n const minDistance = Math.min(distToLeft, distToRight, distToTop, distToBottom)\n\n if (minDistance <= 1) {\n return this.autoScrollSpeedFast\n } else if (minDistance <= 2) {\n return this.autoScrollSpeedMedium\n } else {\n return this.autoScrollSpeedSlow\n }\n }\n\n private recalculateBarProps(): void {\n // Wrap entire method to prevent scroll changes from being treated as manual\n const wasApplyingStickyScroll = this._isApplyingStickyScroll\n this._isApplyingStickyScroll = true\n\n try {\n this.verticalScrollBar.scrollSize = this.content.height\n this.verticalScrollBar.viewportSize = this.viewport.height\n this.horizontalScrollBar.scrollSize = this.content.width\n this.horizontalScrollBar.viewportSize = this.viewport.width\n\n if (this._stickyScroll) {\n const newMaxScrollTop = Math.max(0, this.scrollHeight - this.viewport.height)\n const newMaxScrollLeft = Math.max(0, this.scrollWidth - this.viewport.width)\n const stickyStart = this._stickyStart\n\n if (stickyStart && !this._hasManualScroll) {\n this.applyStickyStart(stickyStart)\n } else if (\n stickyStart &&\n this._hasManualScroll &&\n this.isAtStickyReengagePoint(stickyStart, newMaxScrollTop, newMaxScrollLeft)\n ) {\n // User scrolled back to the sticky edge during streaming; re-engage sticky.\n this._hasManualScroll = false\n this.applyStickyStart(stickyStart)\n } else if (!this._hasManualScroll) {\n if (this._stickyScrollTop) {\n this.scrollTop = 0\n } else if (this._stickyScrollBottom && newMaxScrollTop > 0) {\n this.scrollTop = newMaxScrollTop\n }\n\n if (this._stickyScrollLeft) {\n this.scrollLeft = 0\n } else if (this._stickyScrollRight && newMaxScrollLeft > 0) {\n this.scrollLeft = newMaxScrollLeft\n }\n }\n }\n } finally {\n this._isApplyingStickyScroll = wasApplyingStickyScroll\n }\n\n // NOTE: This is obviously a workaround for something,\n // which is that the bar props are recalculated when the viewport is resized,\n // which intially happens onUpdate but is the viewport does not have the correct dimensions yet,\n // then when it does, no update is triggered and when we do we are in the middle of a render,\n // which just ignores the request. ¯\\_(ツ)_/¯\n // TODO: Fix this properly. How? Move yoga to native, get all changes for elements in one go\n // and update all renderables in one go before rendering.\n // OR: Move this logic to the viewport. IMHO the wrapper and viewport are overkill and not necessary.\n // The Scrollbox can be the viewport, we are using translations on the content anyway.\n process.nextTick(() => {\n this.requestRender()\n })\n }\n\n // Setters for reactive properties\n public set padding(value: number | `${number}%` | null | undefined) {\n this.content.padding = value\n this.requestRender()\n }\n\n public set paddingX(value: number | `${number}%` | null | undefined) {\n this.content.paddingX = value\n this.requestRender()\n }\n\n public set paddingY(value: number | `${number}%` | null | undefined) {\n this.content.paddingY = value\n this.requestRender()\n }\n\n public set paddingTop(value: number | `${number}%` | null | undefined) {\n this.content.paddingTop = value\n this.requestRender()\n }\n\n public set paddingRight(value: number | `${number}%` | null | undefined) {\n this.content.paddingRight = value\n this.requestRender()\n }\n\n public set paddingBottom(value: number | `${number}%` | null | undefined) {\n this.content.paddingBottom = value\n this.requestRender()\n }\n\n public set paddingLeft(value: number | `${number}%` | null | undefined) {\n this.content.paddingLeft = value\n this.requestRender()\n }\n\n public set rootOptions(options: ScrollBoxOptions[\"rootOptions\"]) {\n Object.assign(this, options)\n this.requestRender()\n }\n\n public set wrapperOptions(options: ScrollBoxOptions[\"wrapperOptions\"]) {\n Object.assign(this.wrapper, options)\n this.requestRender()\n }\n\n public set viewportOptions(options: ScrollBoxOptions[\"viewportOptions\"]) {\n Object.assign(this.viewport, options)\n this.requestRender()\n }\n\n public set contentOptions(options: ScrollBoxOptions[\"contentOptions\"]) {\n Object.assign(this.content, options)\n this.requestRender()\n }\n\n public set scrollbarOptions(options: ScrollBoxOptions[\"scrollbarOptions\"]) {\n Object.assign(this.verticalScrollBar, options)\n Object.assign(this.horizontalScrollBar, options)\n this.requestRender()\n }\n\n public set verticalScrollbarOptions(options: ScrollBoxOptions[\"verticalScrollbarOptions\"]) {\n Object.assign(this.verticalScrollBar, options)\n this.requestRender()\n }\n\n public set horizontalScrollbarOptions(options: ScrollBoxOptions[\"horizontalScrollbarOptions\"]) {\n Object.assign(this.horizontalScrollBar, options)\n this.requestRender()\n }\n\n public get scrollAcceleration(): ScrollAcceleration {\n return this.scrollAccel\n }\n\n public set scrollAcceleration(value: ScrollAcceleration) {\n this.scrollAccel = value\n }\n\n get viewportCulling(): boolean {\n return this.content.viewportCulling\n }\n\n set viewportCulling(value: boolean) {\n this.content.viewportCulling = value\n this.requestRender()\n }\n\n protected destroySelf(): void {\n if (this.selectionListener) {\n this._ctx.off(\"selection\", this.selectionListener)\n this.selectionListener = undefined\n }\n super.destroySelf()\n }\n}\n",
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
"import { Renderable, type RenderableOptions } from \"../Renderable.js\"\nimport { OptimizedBuffer } from \"../buffer.js\"\nimport { RGBA, parseColor, type ColorInput } from \"../lib/RGBA.js\"\nimport type { KeyEvent } from \"../lib/KeyHandler.js\"\nimport type { RenderContext } from \"../types.js\"\nimport {\n type KeyBinding as BaseKeyBinding,\n mergeKeyBindings,\n buildKeyBindingsMap,\n getKeyBindingAction,\n defaultKeyAliases,\n mergeKeyAliases,\n} from \"../lib/keybinding.internal.js\"\n\ntype KeyAliasMap = Record<string, string>\n\nexport interface TabSelectOption {\n name: string\n description: string\n value?: any\n}\n\nexport type TabSelectAction = \"move-left\" | \"move-right\" | \"select-current\"\n\nexport type TabSelectKeyBinding = BaseKeyBinding<TabSelectAction>\n\nconst defaultTabSelectKeybindings: TabSelectKeyBinding[] = [\n { name: \"left\", action: \"move-left\" },\n { name: \"[\", action: \"move-left\" },\n { name: \"right\", action: \"move-right\" },\n { name: \"]\", action: \"move-right\" },\n { name: \"return\", action: \"select-current\" },\n { name: \"linefeed\", action: \"select-current\" },\n]\n\nexport interface TabSelectRenderableOptions extends Omit<RenderableOptions<TabSelectRenderable>, \"height\"> {\n height?: number\n options?: TabSelectOption[]\n tabWidth?: number\n backgroundColor?: ColorInput\n textColor?: ColorInput\n focusedBackgroundColor?: ColorInput\n focusedTextColor?: ColorInput\n selectedBackgroundColor?: ColorInput\n selectedTextColor?: ColorInput\n selectedDescriptionColor?: ColorInput\n showScrollArrows?: boolean\n showDescription?: boolean\n showUnderline?: boolean\n wrapSelection?: boolean\n keyBindings?: TabSelectKeyBinding[]\n keyAliasMap?: KeyAliasMap\n}\n\nexport enum TabSelectRenderableEvents {\n SELECTION_CHANGED = \"selectionChanged\",\n ITEM_SELECTED = \"itemSelected\",\n}\n\nfunction calculateDynamicHeight(showUnderline: boolean, showDescription: boolean): number {\n let height = 1\n\n if (showUnderline) {\n height += 1\n }\n\n if (showDescription) {\n height += 1\n }\n\n return height\n}\n\nexport class TabSelectRenderable extends Renderable {\n protected _focusable: boolean = true\n\n private _options: TabSelectOption[] = []\n private selectedIndex: number = 0\n private scrollOffset: number = 0\n private _tabWidth: number\n private maxVisibleTabs: number\n\n private _backgroundColor: RGBA\n private _textColor: RGBA\n private _focusedBackgroundColor: RGBA\n private _focusedTextColor: RGBA\n private _selectedBackgroundColor: RGBA\n private _selectedTextColor: RGBA\n private _selectedDescriptionColor: RGBA\n private _showScrollArrows: boolean\n private _showDescription: boolean\n private _showUnderline: boolean\n private _wrapSelection: boolean\n private _keyBindingsMap: Map<string, TabSelectAction>\n private _keyAliasMap: KeyAliasMap\n private _keyBindings: TabSelectKeyBinding[]\n\n constructor(ctx: RenderContext, options: TabSelectRenderableOptions) {\n const calculatedHeight = calculateDynamicHeight(options.showUnderline ?? true, options.showDescription ?? true)\n\n super(ctx, { ...options, height: calculatedHeight, buffered: true })\n\n this._backgroundColor = parseColor(options.backgroundColor || \"transparent\")\n this._textColor = parseColor(options.textColor || \"#FFFFFF\")\n this._focusedBackgroundColor = parseColor(options.focusedBackgroundColor || options.backgroundColor || \"#1a1a1a\")\n this._focusedTextColor = parseColor(options.focusedTextColor || options.textColor || \"#FFFFFF\")\n this._options = options.options || []\n this._tabWidth = options.tabWidth || 20\n this._showDescription = options.showDescription ?? true\n this._showUnderline = options.showUnderline ?? true\n this._showScrollArrows = options.showScrollArrows ?? true\n this._wrapSelection = options.wrapSelection ?? false\n\n this.maxVisibleTabs = Math.max(1, Math.floor(this.width / this._tabWidth))\n\n this._selectedBackgroundColor = parseColor(options.selectedBackgroundColor || \"#334455\")\n this._selectedTextColor = parseColor(options.selectedTextColor || \"#FFFF00\")\n this._selectedDescriptionColor = parseColor(options.selectedDescriptionColor || \"#CCCCCC\")\n\n this._keyAliasMap = mergeKeyAliases(defaultKeyAliases, options.keyAliasMap || {})\n this._keyBindings = options.keyBindings || []\n const mergedBindings = mergeKeyBindings(defaultTabSelectKeybindings, this._keyBindings)\n this._keyBindingsMap = buildKeyBindingsMap(mergedBindings, this._keyAliasMap)\n }\n\n private calculateDynamicHeight(): number {\n return calculateDynamicHeight(this._showUnderline, this._showDescription)\n }\n\n protected renderSelf(buffer: OptimizedBuffer, deltaTime: number): void {\n if (!this.visible || !this.frameBuffer) return\n\n if (this.isDirty) {\n this.refreshFrameBuffer()\n }\n }\n\n private refreshFrameBuffer(): void {\n if (!this.frameBuffer) return\n // Use focused colors if focused\n const bgColor = this._focused ? this._focusedBackgroundColor : this._backgroundColor\n this.frameBuffer.clear(bgColor)\n if (this._options.length === 0) return\n\n const contentX = 0\n const contentY = 0\n const contentWidth = this.width\n const contentHeight = this.height\n\n const visibleOptions = this._options.slice(this.scrollOffset, this.scrollOffset + this.maxVisibleTabs)\n\n // Render tab names\n for (let i = 0; i < visibleOptions.length; i++) {\n const actualIndex = this.scrollOffset + i\n const option = visibleOptions[i]\n const isSelected = actualIndex === this.selectedIndex\n const tabX = contentX + i * this._tabWidth\n\n if (tabX >= contentX + contentWidth) break\n\n const actualTabWidth = Math.min(this._tabWidth, contentWidth - i * this._tabWidth)\n\n if (isSelected) {\n this.frameBuffer.fillRect(tabX, contentY, actualTabWidth, 1, this._selectedBackgroundColor)\n }\n\n const baseTextColor = this._focused ? this._focusedTextColor : this._textColor\n const nameColor = isSelected ? this._selectedTextColor : baseTextColor\n const nameContent = this.truncateText(option.name, actualTabWidth - 2)\n this.frameBuffer.drawText(nameContent, tabX + 1, contentY, nameColor)\n\n if (isSelected && this._showUnderline && contentHeight >= 2) {\n const underlineY = contentY + 1\n const underlineBg = isSelected ? this._selectedBackgroundColor : bgColor\n this.frameBuffer.drawText(\"▬\".repeat(actualTabWidth), tabX, underlineY, nameColor, underlineBg)\n }\n }\n\n if (this._showDescription && contentHeight >= (this._showUnderline ? 3 : 2)) {\n const selectedOption = this.getSelectedOption()\n if (selectedOption) {\n const descriptionY = contentY + (this._showUnderline ? 2 : 1)\n const descColor = this._selectedDescriptionColor\n const descContent = this.truncateText(selectedOption.description, contentWidth - 2)\n this.frameBuffer.drawText(descContent, contentX + 1, descriptionY, descColor)\n }\n }\n\n if (this._showScrollArrows && this._options.length > this.maxVisibleTabs) {\n this.renderScrollArrowsToFrameBuffer(contentX, contentY, contentWidth, contentHeight)\n }\n }\n\n private truncateText(text: string, maxWidth: number): string {\n if (text.length <= maxWidth) return text\n return text.substring(0, Math.max(0, maxWidth - 1)) + \"…\"\n }\n\n private renderScrollArrowsToFrameBuffer(\n contentX: number,\n contentY: number,\n contentWidth: number,\n contentHeight: number,\n ): void {\n if (!this.frameBuffer) return\n\n const hasMoreLeft = this.scrollOffset > 0\n const hasMoreRight = this.scrollOffset + this.maxVisibleTabs < this._options.length\n\n if (hasMoreLeft) {\n this.frameBuffer.drawText(\"‹\", contentX, contentY, parseColor(\"#AAAAAA\"))\n }\n\n if (hasMoreRight) {\n this.frameBuffer.drawText(\"›\", contentX + contentWidth - 1, contentY, parseColor(\"#AAAAAA\"))\n }\n }\n\n public setOptions(options: TabSelectOption[]): void {\n this._options = options\n this.selectedIndex = Math.min(this.selectedIndex, Math.max(0, options.length - 1))\n this.updateScrollOffset()\n this.requestRender()\n }\n\n public getSelectedOption(): TabSelectOption | null {\n return this._options[this.selectedIndex] || null\n }\n\n public getSelectedIndex(): number {\n return this.selectedIndex\n }\n\n public moveLeft(): void {\n if (this.selectedIndex > 0) {\n this.selectedIndex--\n } else if (this._wrapSelection && this._options.length > 0) {\n this.selectedIndex = this._options.length - 1\n } else {\n return\n }\n\n this.updateScrollOffset()\n this.requestRender()\n this.emit(TabSelectRenderableEvents.SELECTION_CHANGED, this.selectedIndex, this.getSelectedOption())\n }\n\n public moveRight(): void {\n if (this.selectedIndex < this._options.length - 1) {\n this.selectedIndex++\n } else if (this._wrapSelection && this._options.length > 0) {\n this.selectedIndex = 0\n } else {\n return\n }\n\n this.updateScrollOffset()\n this.requestRender()\n this.emit(TabSelectRenderableEvents.SELECTION_CHANGED, this.selectedIndex, this.getSelectedOption())\n }\n\n public selectCurrent(): void {\n const selected = this.getSelectedOption()\n if (selected) {\n this.emit(TabSelectRenderableEvents.ITEM_SELECTED, this.selectedIndex, selected)\n }\n }\n\n public setSelectedIndex(index: number): void {\n if (index >= 0 && index < this._options.length) {\n this.selectedIndex = index\n this.updateScrollOffset()\n this.requestRender()\n this.emit(TabSelectRenderableEvents.SELECTION_CHANGED, this.selectedIndex, this.getSelectedOption())\n }\n }\n\n private updateScrollOffset(): void {\n const halfVisible = Math.floor(this.maxVisibleTabs / 2)\n const newScrollOffset = Math.max(\n 0,\n Math.min(this.selectedIndex - halfVisible, this._options.length - this.maxVisibleTabs),\n )\n\n if (newScrollOffset !== this.scrollOffset) {\n this.scrollOffset = newScrollOffset\n this.requestRender()\n }\n }\n\n protected onResize(width: number, height: number): void {\n this.maxVisibleTabs = Math.max(1, Math.floor(width / this._tabWidth))\n this.updateScrollOffset()\n this.requestRender()\n }\n\n public setTabWidth(tabWidth: number): void {\n if (this._tabWidth === tabWidth) return\n\n this._tabWidth = tabWidth\n this.maxVisibleTabs = Math.max(1, Math.floor(this.width / this._tabWidth))\n\n this.updateScrollOffset()\n this.requestRender()\n }\n\n public getTabWidth(): number {\n return this._tabWidth\n }\n\n public handleKeyPress(key: KeyEvent): boolean {\n const action = getKeyBindingAction(this._keyBindingsMap, key)\n\n if (action) {\n switch (action) {\n case \"move-left\":\n this.moveLeft()\n return true\n case \"move-right\":\n this.moveRight()\n return true\n case \"select-current\":\n this.selectCurrent()\n return true\n }\n }\n\n return false\n }\n\n public get options(): TabSelectOption[] {\n return this._options\n }\n\n public set options(options: TabSelectOption[]) {\n this._options = options\n this.selectedIndex = Math.min(this.selectedIndex, Math.max(0, options.length - 1))\n this.updateScrollOffset()\n this.requestRender()\n }\n\n public set backgroundColor(color: ColorInput) {\n this._backgroundColor = parseColor(color)\n this.requestRender()\n }\n\n public set textColor(color: ColorInput) {\n this._textColor = parseColor(color)\n this.requestRender()\n }\n\n public set focusedBackgroundColor(color: ColorInput) {\n this._focusedBackgroundColor = parseColor(color)\n this.requestRender()\n }\n\n public set focusedTextColor(color: ColorInput) {\n this._focusedTextColor = parseColor(color)\n this.requestRender()\n }\n\n public set selectedBackgroundColor(color: ColorInput) {\n this._selectedBackgroundColor = parseColor(color)\n this.requestRender()\n }\n\n public set selectedTextColor(color: ColorInput) {\n this._selectedTextColor = parseColor(color)\n this.requestRender()\n }\n\n public set selectedDescriptionColor(color: ColorInput) {\n this._selectedDescriptionColor = parseColor(color)\n this.requestRender()\n }\n\n public get showDescription(): boolean {\n return this._showDescription\n }\n\n public set showDescription(show: boolean) {\n if (this._showDescription !== show) {\n this._showDescription = show\n const newHeight = this.calculateDynamicHeight()\n this.height = newHeight\n this.requestRender()\n }\n }\n\n public get showUnderline(): boolean {\n return this._showUnderline\n }\n\n public set showUnderline(show: boolean) {\n if (this._showUnderline !== show) {\n this._showUnderline = show\n const newHeight = this.calculateDynamicHeight()\n this.height = newHeight\n this.requestRender()\n }\n }\n\n public get showScrollArrows(): boolean {\n return this._showScrollArrows\n }\n\n public set showScrollArrows(show: boolean) {\n if (this._showScrollArrows !== show) {\n this._showScrollArrows = show\n this.requestRender()\n }\n }\n\n public get wrapSelection(): boolean {\n return this._wrapSelection\n }\n\n public set wrapSelection(wrap: boolean) {\n this._wrapSelection = wrap\n }\n\n public get tabWidth(): number {\n return this._tabWidth\n }\n\n public set tabWidth(tabWidth: number) {\n if (this._tabWidth === tabWidth) return\n\n this._tabWidth = tabWidth\n this.maxVisibleTabs = Math.max(1, Math.floor(this.width / this._tabWidth))\n\n this.updateScrollOffset()\n this.requestRender()\n }\n\n public set keyBindings(bindings: TabSelectKeyBinding[]) {\n this._keyBindings = bindings\n const mergedBindings = mergeKeyBindings(defaultTabSelectKeybindings, bindings)\n this._keyBindingsMap = buildKeyBindingsMap(mergedBindings, this._keyAliasMap)\n }\n\n public set keyAliasMap(aliases: KeyAliasMap) {\n this._keyAliasMap = mergeKeyAliases(defaultKeyAliases, aliases)\n const mergedBindings = mergeKeyBindings(defaultTabSelectKeybindings, this._keyBindings)\n this._keyBindingsMap = buildKeyBindingsMap(mergedBindings, this._keyAliasMap)\n }\n}\n",
|
|
71
71
|
"import type { OptimizedBuffer } from \"../buffer.js\"\nimport { parseColor, RGBA, type ColorInput } from \"../lib/RGBA.js\"\nimport { Renderable, type RenderableOptions } from \"../Renderable.js\"\nimport type { RenderContext } from \"../types.js\"\n\nconst graphemeSegmenter = new Intl.Segmenter(undefined, { granularity: \"grapheme\" })\n\nfunction measureCellWidth(buffer: OptimizedBuffer, text: string): number {\n const encoded = buffer.encodeUnicode(text)\n if (!encoded) return 0\n\n try {\n return encoded.data.reduce((width, glyph) => width + glyph.width, 0)\n } finally {\n buffer.freeUnicode(encoded)\n }\n}\n\nfunction truncateToCellWidth(buffer: OptimizedBuffer, text: string, maxWidth: number): { text: string; width: number } {\n let visibleText = \"\"\n let visibleWidth = 0\n\n for (const { segment } of graphemeSegmenter.segment(text)) {\n const segmentWidth = measureCellWidth(buffer, segment)\n if (visibleWidth + segmentWidth > maxWidth) break\n\n visibleText += segment\n visibleWidth += segmentWidth\n }\n\n return { text: visibleText, width: visibleWidth }\n}\n\nexport interface TimeToFirstDrawOptions extends RenderableOptions<TimeToFirstDrawRenderable> {\n fg?: ColorInput\n label?: string\n precision?: number\n}\n\nexport class TimeToFirstDrawRenderable extends Renderable {\n private _runtimeMs: number | null = null\n private textColor: RGBA\n private label: string\n private precision: number\n\n constructor(ctx: RenderContext, options: TimeToFirstDrawOptions = {}) {\n super(ctx, {\n width: \"100%\",\n height: 1,\n flexShrink: 0,\n alignSelf: \"center\",\n ...options,\n })\n\n this.textColor = parseColor(options.fg ?? \"#AAAAAA\")\n this.label = options.label ?? \"Time to first draw\"\n this.precision = this.normalizePrecision(options.precision ?? 2)\n }\n\n public get runtimeMs(): number | null {\n return this._runtimeMs\n }\n\n public set fg(value: ColorInput) {\n this.textColor = parseColor(value)\n this.requestRender()\n }\n\n public set color(value: ColorInput) {\n this.fg = value\n }\n\n public set textLabel(value: string) {\n if (value === this.label) {\n return\n }\n\n this.label = value\n this.requestRender()\n }\n\n public set decimals(value: number) {\n const nextPrecision = this.normalizePrecision(value)\n if (nextPrecision === this.precision) {\n return\n }\n\n this.precision = nextPrecision\n this.requestRender()\n }\n\n public reset(): void {\n this._runtimeMs = null\n this.requestRender()\n }\n\n protected override renderSelf(buffer: OptimizedBuffer): void {\n if (this._runtimeMs === null) {\n this._runtimeMs = performance.now()\n }\n\n const content = `${this.label}: ${this._runtimeMs.toFixed(this.precision)}ms`\n const maxWidth = Math.max(this.width, 1)\n const visibleContent = truncateToCellWidth(buffer, content, maxWidth)\n const centeredX = this.x + Math.max(0, Math.floor((maxWidth - visibleContent.width) / 2))\n\n buffer.drawText(visibleContent.text, centeredX, this.y, this.textColor)\n }\n\n private normalizePrecision(value: number): number {\n if (!Number.isFinite(value)) {\n return 2\n }\n\n return Math.max(0, Math.floor(value))\n }\n}\n"
|
|
72
72
|
],
|
|
73
|
-
"mappings": "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",
|
|
74
|
-
"debugId": "
|
|
73
|
+
"mappings": "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",
|
|
74
|
+
"debugId": "A215C65C5C28D5BB64756E2164756E21",
|
|
75
75
|
"names": []
|
|
76
76
|
}
|