@promptctl/rich-js 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/README.md +29 -15
  2. package/dist/core/cells.d.ts +83 -3
  3. package/dist/core/cells.d.ts.map +1 -1
  4. package/dist/core/cells.js +113 -1
  5. package/dist/core/cells.js.map +1 -1
  6. package/dist/core/console.d.ts +0 -1
  7. package/dist/core/console.d.ts.map +1 -1
  8. package/dist/core/console.js +20 -16
  9. package/dist/core/console.js.map +1 -1
  10. package/dist/core/highlighter.d.ts.map +1 -1
  11. package/dist/core/highlighter.js.map +1 -1
  12. package/dist/core/oklch.d.ts +106 -0
  13. package/dist/core/oklch.d.ts.map +1 -0
  14. package/dist/core/oklch.js +221 -0
  15. package/dist/core/oklch.js.map +1 -0
  16. package/dist/core/render.d.ts +26 -7
  17. package/dist/core/render.d.ts.map +1 -1
  18. package/dist/core/render.js +83 -15
  19. package/dist/core/render.js.map +1 -1
  20. package/dist/core/segment.d.ts +14 -1
  21. package/dist/core/segment.d.ts.map +1 -1
  22. package/dist/core/segment.js +28 -3
  23. package/dist/core/segment.js.map +1 -1
  24. package/dist/core/style.d.ts +11 -2
  25. package/dist/core/style.d.ts.map +1 -1
  26. package/dist/core/style.js +31 -18
  27. package/dist/core/style.js.map +1 -1
  28. package/dist/core/text.d.ts +20 -0
  29. package/dist/core/text.d.ts.map +1 -1
  30. package/dist/core/text.js +31 -0
  31. package/dist/core/text.js.map +1 -1
  32. package/dist/index.d.ts +11 -4
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +12 -3
  35. package/dist/index.js.map +1 -1
  36. package/dist/renderables/columns.d.ts.map +1 -1
  37. package/dist/renderables/columns.js +15 -22
  38. package/dist/renderables/columns.js.map +1 -1
  39. package/dist/renderables/layout.d.ts.map +1 -1
  40. package/dist/renderables/layout.js +8 -29
  41. package/dist/renderables/layout.js.map +1 -1
  42. package/dist/renderables/live.d.ts.map +1 -1
  43. package/dist/renderables/live.js +8 -7
  44. package/dist/renderables/live.js.map +1 -1
  45. package/dist/renderables/panel.d.ts +34 -0
  46. package/dist/renderables/panel.d.ts.map +1 -1
  47. package/dist/renderables/panel.js +66 -23
  48. package/dist/renderables/panel.js.map +1 -1
  49. package/dist/template-bindings/index.d.ts +35 -0
  50. package/dist/template-bindings/index.d.ts.map +1 -1
  51. package/dist/template-bindings/index.js +61 -0
  52. package/dist/template-bindings/index.js.map +1 -1
  53. package/dist/template-bindings/style-funcs.d.ts.map +1 -1
  54. package/dist/template-bindings/style-funcs.js +32 -0
  55. package/dist/template-bindings/style-funcs.js.map +1 -1
  56. package/dist/themes/colorMath.d.ts +40 -0
  57. package/dist/themes/colorMath.d.ts.map +1 -1
  58. package/dist/themes/colorMath.js +82 -1
  59. package/dist/themes/colorMath.js.map +1 -1
  60. package/dist/themes/data/catppuccin-frappe.d.ts +4 -0
  61. package/dist/themes/data/catppuccin-frappe.d.ts.map +1 -0
  62. package/dist/themes/data/catppuccin-frappe.js +159 -0
  63. package/dist/themes/data/catppuccin-frappe.js.map +1 -0
  64. package/dist/themes/data/catppuccin-macchiato.d.ts +4 -0
  65. package/dist/themes/data/catppuccin-macchiato.d.ts.map +1 -0
  66. package/dist/themes/data/catppuccin-macchiato.js +159 -0
  67. package/dist/themes/data/catppuccin-macchiato.js.map +1 -0
  68. package/dist/themes/data/cyberpunk.d.ts +18 -0
  69. package/dist/themes/data/cyberpunk.d.ts.map +1 -0
  70. package/dist/themes/data/cyberpunk.js +192 -0
  71. package/dist/themes/data/cyberpunk.js.map +1 -0
  72. package/dist/themes/data/default.d.ts +4 -0
  73. package/dist/themes/data/default.d.ts.map +1 -0
  74. package/dist/themes/data/default.js +159 -0
  75. package/dist/themes/data/default.js.map +1 -0
  76. package/dist/themes/data/index.d.ts +10 -3
  77. package/dist/themes/data/index.d.ts.map +1 -1
  78. package/dist/themes/data/index.js +24 -7
  79. package/dist/themes/data/index.js.map +1 -1
  80. package/dist/themes/data/svg-export.d.ts +4 -0
  81. package/dist/themes/data/svg-export.d.ts.map +1 -0
  82. package/dist/themes/data/svg-export.js +159 -0
  83. package/dist/themes/data/svg-export.js.map +1 -0
  84. package/dist/themes/data/types.d.ts +4 -3
  85. package/dist/themes/data/types.d.ts.map +1 -1
  86. package/dist/themes/registry.d.ts +29 -2
  87. package/dist/themes/registry.d.ts.map +1 -1
  88. package/dist/themes/registry.js +62 -12
  89. package/dist/themes/registry.js.map +1 -1
  90. package/dist/themes/terminalThemes.d.ts +29 -20
  91. package/dist/themes/terminalThemes.d.ts.map +1 -1
  92. package/dist/themes/terminalThemes.js +50 -249
  93. package/dist/themes/terminalThemes.js.map +1 -1
  94. package/dist/themes/transpose.d.ts +88 -0
  95. package/dist/themes/transpose.d.ts.map +1 -0
  96. package/dist/themes/transpose.js +139 -0
  97. package/dist/themes/transpose.js.map +1 -0
  98. package/dist/widgets/button.d.ts +8 -5
  99. package/dist/widgets/button.d.ts.map +1 -1
  100. package/dist/widgets/button.js +36 -11
  101. package/dist/widgets/button.js.map +1 -1
  102. package/dist/widgets/checkbox.d.ts +1 -2
  103. package/dist/widgets/checkbox.d.ts.map +1 -1
  104. package/dist/widgets/checkbox.js +20 -7
  105. package/dist/widgets/checkbox.js.map +1 -1
  106. package/dist/widgets/dropdown.d.ts +4 -3
  107. package/dist/widgets/dropdown.d.ts.map +1 -1
  108. package/dist/widgets/dropdown.js +109 -27
  109. package/dist/widgets/dropdown.js.map +1 -1
  110. package/dist/widgets/event-router.d.ts +6 -3
  111. package/dist/widgets/event-router.d.ts.map +1 -1
  112. package/dist/widgets/event-router.js +179 -68
  113. package/dist/widgets/event-router.js.map +1 -1
  114. package/dist/widgets/focus-manager.d.ts +2 -1
  115. package/dist/widgets/focus-manager.d.ts.map +1 -1
  116. package/dist/widgets/focus-manager.js +28 -9
  117. package/dist/widgets/focus-manager.js.map +1 -1
  118. package/dist/widgets/index.d.ts +2 -2
  119. package/dist/widgets/index.d.ts.map +1 -1
  120. package/dist/widgets/index.js +1 -1
  121. package/dist/widgets/index.js.map +1 -1
  122. package/dist/widgets/screen.d.ts +2 -0
  123. package/dist/widgets/screen.d.ts.map +1 -1
  124. package/dist/widgets/screen.js +148 -45
  125. package/dist/widgets/screen.js.map +1 -1
  126. package/dist/widgets/slider.d.ts +6 -3
  127. package/dist/widgets/slider.d.ts.map +1 -1
  128. package/dist/widgets/slider.js +34 -10
  129. package/dist/widgets/slider.js.map +1 -1
  130. package/dist/widgets/static-item.d.ts +1 -1
  131. package/dist/widgets/static-item.d.ts.map +1 -1
  132. package/dist/widgets/static-item.js +12 -13
  133. package/dist/widgets/static-item.js.map +1 -1
  134. package/dist/widgets/text-input.d.ts +239 -13
  135. package/dist/widgets/text-input.d.ts.map +1 -1
  136. package/dist/widgets/text-input.js +1004 -74
  137. package/dist/widgets/text-input.js.map +1 -1
  138. package/dist/widgets/toggle.d.ts +1 -2
  139. package/dist/widgets/toggle.d.ts.map +1 -1
  140. package/dist/widgets/toggle.js +20 -8
  141. package/dist/widgets/toggle.js.map +1 -1
  142. package/dist/widgets/types.d.ts +21 -4
  143. package/dist/widgets/types.d.ts.map +1 -1
  144. package/dist/widgets/types.js +19 -0
  145. package/dist/widgets/types.js.map +1 -1
  146. package/dist/widgets/widget-base.d.ts +1 -0
  147. package/dist/widgets/widget-base.d.ts.map +1 -1
  148. package/dist/widgets/widget-base.js +24 -7
  149. package/dist/widgets/widget-base.js.map +1 -1
  150. package/package.json +5 -3
package/README.md CHANGED
@@ -298,13 +298,23 @@ console.saveHtml("output.html");
298
298
 
299
299
  ## Demos
300
300
 
301
- Three interactive TUI demos exercise the library's renderables against real-world use cases. Each runs in alt-screen mode with flicker-free rendering. A fourth one-shot demo prints every built-in `Joiner` for visual comparison.
301
+ A handful of demos under `examples/` exercise the library against realistic use cases. Two are explained in detail below (`rich-explore` and `claude-sessions`); the rest are listed here with one-line summaries. The full set of available npm scripts is the authoritative list — `cat package.json | jq .scripts` to see them all.
302
302
 
303
303
  ```sh
304
- npm run demo # rich-explore: file browser
305
- npm run sessions # claude-sessions: Claude Code session browser
306
- npm run colors # rich-colors: interactive color palette generator
307
- npm run strip # rich-strip: side-by-side joiner showcase (one-shot)
304
+ # Detailed below
305
+ npm run demo # rich-explore — TUI file browser + markdown/code reader (interactive)
306
+ npm run sessions # claude-sessions — Claude Code session browser (interactive)
307
+
308
+ # Other interactive demos
309
+ npm run demo-inputs # rich-config — TextInput / palette search
310
+ npm run demo:dropdown # dropdown-demo — Dropdown widget showcase
311
+ npm run dash # rich-dash — Live dashboard
312
+ npm run template-bindings # rich-template-bindings — go-template / reactive bindings playground
313
+
314
+ # Non-interactive transcripts
315
+ npm run themes-and-color-studio # color / palette / theme / contrast tour (eight sections)
316
+ npm run strip # rich-strip — side-by-side joiner showcase
317
+ npm run markup-plugins # rich-markup-plugins — plugin-tag examples
308
318
  ```
309
319
 
310
320
  ### rich-explore — TUI file browser + markdown/code reader
@@ -357,23 +367,28 @@ npm run sessions
357
367
  | `Panel` | Six distinct border-color schemes by block kind (cyan/blue/yellow/red/magenta/green) |
358
368
  | `Layout` | Column split (browser-on-top / viewer-on-bottom), dynamic height budgeting |
359
369
 
360
- ### rich-colors — Interactive color palette generator
370
+ ### themes-and-color-studio — color, palette, theme, and contrast tour
361
371
 
362
- An interactive palette generator exploring `Color`, `Style`, and terminal color math. Generates palettes from seed colors, displays color swatches, and lets you adjust parameters interactively.
372
+ A one-shot non-interactive demo that walks every public surface of the color subsystem in eight sections: ColorRgba values and parsing, ColorSpec and downgrade tables, color-system detection, the theme registry, PaletteResolver spec forms, every bundled `TerminalTheme` constant, OKLCH transposition (hue circle / chroma sweep / lightness invert / themeKeyForRoot), and the WCAG contrast toolkit.
363
373
 
364
374
  ```sh
365
- npm run colors
375
+ npm run themes-and-color-studio # terminal output
376
+ EXPORT_HTML=out.html npm run themes-and-color-studio # also write a styled HTML transcript
366
377
  ```
367
378
 
368
379
  **Features exercised (incremental to above):**
369
380
 
370
381
  | Module | How it's used |
371
382
  |---|---|
372
- | `Color` | Direct `Color` construction, `blendRgb`, color math, palette generation |
373
- | `TerminalTheme` | `DEFAULT_TERMINAL_THEME`, `MONOKAI`, `SVG_EXPORT_THEME` theme constants |
374
- | `ANSI_COLOR_NAMES` | Named ANSI color enumeration and display |
375
- | `Style` | Direct `Style` construction from `Color` objects (not just string parsing) |
376
- | `Spinner` | Visual activity indicator in input mode |
383
+ | `ColorRgba` / `parseRgbHex` / `parseRgbaHex` / `blendRgb` | Pixel-level values, two hex parsers, linear blend, alpha compositing |
384
+ | `ColorSpec` / `ColorDepth` | Every factory; downgrade across `STANDARD_TABLE` / `EIGHT_BIT_TABLE` / `WINDOWS_TABLE`; `ANSI_COLOR_NAMES` lookups; `ColorParseError` |
385
+ | `detectColorSystem` / `resolveColorSystem` | Env-driven color-system detection with `DetectColorOptions` fixtures; spec-string resolution |
386
+ | `Palette` / `PaletteResolver` / `buildPalette` | Bare / modifier / alpha / auto spec forms against gruvbox; `BaseColors` → derived `text-*` / `on-*` / `*-muted` vars |
387
+ | Theme registry | `getThemePalette` / `listThemePalettes` / `getThemeBaseColors` walking every bundled theme; raw `THEMES` / `ThemePaletteData` via subpath |
388
+ | `TerminalTheme` constants | All bundled constants (`DEFAULT`, `SVG_EXPORT`, `MONOKAI`, `NORD`, `GRUVBOX`, `DRACULA`, `TOKYO_NIGHT`, `FLEXOKI`, `CYBERPUNK`, `CATPPUCCIN_*`, `SOLARIZED_*`, `ROSE_PINE*`, `ATOM_ONE_*`, `TEXTUAL_*`) |
389
+ | `Oklch` / `transposePalette` / `themeKeyForRoot` | Round-trip + `IDENTITY` / `INVERT_LIGHTNESS`; hue circle; chroma sweep; light↔dark invert; `ANCHORED_ROOTS` / `isAnchored` |
390
+ | `relativeLuminance` / `contrastRatio` / `contrastFor` / `ensureContrast` | WCAG contrast matrix, hue-preserving lightness adjustment to clear the AA threshold |
391
+ | `Console` record / `saveHtml` | Optional HTML export via `EXPORT_HTML=path`; same render pipeline drives both terminal and file output |
377
392
 
378
393
  ---
379
394
 
@@ -402,8 +417,7 @@ Renderables: `Layout`, `Panel`, `Tree`, `Table`/`Column`, `Markdown`, `Syntax`,
402
417
  | `Prompt` / `IntPrompt` / `FloatPrompt` / `Confirm` | Interactive input via readline | Add a go-to-path prompt in rich-explore; incompatible with raw-mode loops so needs a modal switch |
403
418
  | `emoji` | Shortcode substitution (`:smiley:` → 😃) | Enable in markup-rendered block text in claude-sessions |
404
419
  | `NullHighlighter` / `RegexHighlighter` | Specialized highlighters not yet exercised | `RegexHighlighter` for search-term highlighting in claude-sessions |
405
- | `StyleStack` / `Theme` / `DEFAULT_STYLES` | Theme customization | Add a theme switcher to rich-colors |
406
- | `Color` downgrading | `standard` / `256` / `windows` color system fallbacks | Add a color-system picker to rich-colors |
420
+ | `StyleStack` / `Theme` / `DEFAULT_STYLES` | Theme customization | Add a Console style-theme switcher demo |
407
421
  | `Console` recording | `record`, `exportText`, `exportHtml`, `saveHtml` | Add an export-to-HTML feature to claude-sessions |
408
422
  | Most `Box` variants | `ASCII`, `SQUARE`, `MINIMAL`, `HEAVY`, `DOUBLE`, `MARKDOWN`, etc. | Add a box-style picker to rich-explore's Panel borders |
409
423
  | `Measurement.get()` / `measureRenderables` | Explicit width measurement | Used internally; could add a measurement debug overlay |
@@ -6,19 +6,99 @@
6
6
  * Returns the terminal cell width of a string.
7
7
  */
8
8
  export declare function cellLen(text: string): number;
9
+ declare const _cellCol: unique symbol;
10
+ declare const _codeUnit: unique symbol;
11
+ declare const _codePoint: unique symbol;
12
+ /** Terminal cell-column offset. Never interchangeable with a code-unit index. */
13
+ export type CellCol = number & {
14
+ readonly [_cellCol]: true;
15
+ };
16
+ /** JS string code-unit index. Never interchangeable with a cell-column offset. */
17
+ export type CodeUnit = number & {
18
+ readonly [_codeUnit]: true;
19
+ };
20
+ /**
21
+ * A `CodeUnit` index that is additionally guaranteed to fall on a Unicode
22
+ * code-point boundary (i.e. never inside a surrogate pair). Assignable to
23
+ * `CodeUnit`; the reverse assignment is forbidden.
24
+ */
25
+ export type CodePoint = CodeUnit & {
26
+ readonly [_codePoint]: true;
27
+ };
28
+ /** Brand a raw number as a CellCol. Use only at trust boundaries. */
29
+ export declare function asCellCol(n: number): CellCol;
30
+ /** Brand a raw number as a CodeUnit. Use only at trust boundaries. */
31
+ export declare function asCodeUnit(n: number): CodeUnit;
32
+ /** Brand a raw number as a CodePoint. Use only when the value is known to be
33
+ * on a Unicode code-point boundary. */
34
+ export declare function asCodePoint(n: number): CodePoint;
9
35
  /**
10
36
  * Pads or crops a string to exactly `totalWidth` terminal cells.
11
37
  * Invariant: cellLen(setCellSize(text, n)) === n (unless n is 0)
12
38
  */
13
- export declare function setCellSize(text: string, totalWidth: number): string;
39
+ export declare function setCellSize(text: string, totalWidth: CellCol): string;
14
40
  /**
15
41
  * Splits text at a cell position. Returns [left, right].
16
42
  * When the position falls mid-wide-character, the left side is padded
17
43
  * to reach exactly `position` cells. The wide char remains in the right side.
18
44
  */
19
- export declare function splitText(text: string, position: number): [string, string];
45
+ export declare function splitText(text: string, position: CellCol): [string, string];
20
46
  /**
21
47
  * Wraps text into lines of at most `maxWidth` cells.
22
48
  */
23
- export declare function chopCells(text: string, maxWidth: number): string[];
49
+ export declare function chopCells(text: string, maxWidth: CellCol): string[];
50
+ /**
51
+ * Returns the largest prefix of `text` whose cell width fits within `cap` cells.
52
+ * No padding — the returned string may be narrower than `cap` when the next
53
+ * character is wide and would overshoot. Never wider than `cap` cells.
54
+ *
55
+ * When the first character already exceeds `cap` cells, returns "" (the caller
56
+ * must decide whether to force-take the character or skip it).
57
+ */
58
+ export declare function cellFit(text: string, cap: CellCol): string;
59
+ /**
60
+ * Returns the largest code-unit end offset starting from `startCU` whose
61
+ * prefix (from `startCU`) has cell width ≤ `cap`. Iterates from the given
62
+ * offset without slicing the tail, avoiding O(N²) allocation when called
63
+ * repeatedly across a long string.
64
+ *
65
+ * [LAW:types-are-the-program] returns CodePoint because for...of always
66
+ * stops on a code-point boundary.
67
+ */
68
+ export declare function cellFitFrom(text: string, startCU: CodePoint, cap: CellCol): CodePoint;
69
+ /**
70
+ * Returns the largest code-unit offset into `content` whose prefix has
71
+ * cell width ≤ `cellCol`. When `cellCol` falls mid-wide-character the
72
+ * function stops before that character (never advances into it).
73
+ * Clamps to `content.length` if `cellCol` exceeds the string's total
74
+ * cell width.
75
+ *
76
+ * This is the inverse of `cellLen(content.slice(0, codeUnit))` — given a
77
+ * visual column, return the corresponding string index.
78
+ *
79
+ * Returns `CodePoint` because `for...of` iteration always stops on a
80
+ * code-point boundary.
81
+ */
82
+ export declare function cellColToCodeUnitOffset(content: string, cellCol: CellCol): CodePoint;
83
+ /**
84
+ * Advance one full Unicode code point from `cu`, returning the code-unit
85
+ * offset of the start of the *next* code point. Returns `s.length` when
86
+ * already at or past the end.
87
+ *
88
+ * Handles surrogate pairs: when the code point at `cu` is a supplementary
89
+ * character (U+10000…U+10FFFF) it occupies 2 UTF-16 code units, so the
90
+ * returned offset advances by 2.
91
+ */
92
+ export declare function nextCodePoint(s: string, cu: CodeUnit): CodePoint;
93
+ /**
94
+ * Step back one full Unicode code point from `cu`, returning the code-unit
95
+ * offset of the start of the *previous* code point. Returns 0 when already
96
+ * at the start.
97
+ *
98
+ * Handles surrogate pairs: when the code unit at `cu - 1` is a low surrogate
99
+ * AND the code unit at `cu - 2` is a high surrogate, steps back 2 code units.
100
+ * Unpaired surrogates are treated as 1-CU characters.
101
+ */
102
+ export declare function prevCodePoint(s: string, cu: CodeUnit): CodePoint;
103
+ export {};
24
104
  //# sourceMappingURL=cells.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cells.d.ts","sourceRoot":"","sources":["../../src/core/cells.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAa5C;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CASpE;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,CAAC,MAAM,EAAE,MAAM,CAAC,CAuBlB;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAkBlE"}
1
+ {"version":3,"file":"cells.d.ts","sourceRoot":"","sources":["../../src/core/cells.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAa5C;AAqBD,OAAO,CAAC,MAAM,QAAQ,EAAE,OAAO,MAAM,CAAC;AACtC,OAAO,CAAC,MAAM,SAAS,EAAE,OAAO,MAAM,CAAC;AACvC,OAAO,CAAC,MAAM,UAAU,EAAE,OAAO,MAAM,CAAC;AAExC,iFAAiF;AACjF,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AAE7D,kFAAkF;AAClF,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AAE/D;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG;IAAE,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AAEnE,qEAAqE;AACrE,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAyB;AAEtE,sEAAsE;AACtE,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,QAAQ,CAA0B;AAEzE;wCACwC;AACxC,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAA2B;AAI5E;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,MAAM,CAQrE;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,GAChB,CAAC,MAAM,EAAE,MAAM,CAAC,CAuBlB;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,EAAE,CAkBnE;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CAU1D;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,GAAG,SAAS,CAYrF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS,CAWpF;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,GAAG,SAAS,CAIhE;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,GAAG,SAAS,CAQhE"}
@@ -26,6 +26,14 @@ export function cellLen(text) {
26
26
  }
27
27
  return width;
28
28
  }
29
+ /** Brand a raw number as a CellCol. Use only at trust boundaries. */
30
+ export function asCellCol(n) { return n; }
31
+ /** Brand a raw number as a CodeUnit. Use only at trust boundaries. */
32
+ export function asCodeUnit(n) { return n; }
33
+ /** Brand a raw number as a CodePoint. Use only when the value is known to be
34
+ * on a Unicode code-point boundary. */
35
+ export function asCodePoint(n) { return n; }
36
+ // ── Cell-aware string utilities ──────────────────────────────────────────────
29
37
  /**
30
38
  * Pads or crops a string to exactly `totalWidth` terminal cells.
31
39
  * Invariant: cellLen(setCellSize(text, n)) === n (unless n is 0)
@@ -39,7 +47,6 @@ export function setCellSize(text, totalWidth) {
39
47
  if (currentWidth < totalWidth) {
40
48
  return text + " ".repeat(totalWidth - currentWidth);
41
49
  }
42
- // Crop: walk characters, tracking cell width
43
50
  return cropToWidth(text, totalWidth);
44
51
  }
45
52
  /**
@@ -94,6 +101,111 @@ export function chopCells(text, maxWidth) {
94
101
  }
95
102
  return lines;
96
103
  }
104
+ /**
105
+ * Returns the largest prefix of `text` whose cell width fits within `cap` cells.
106
+ * No padding — the returned string may be narrower than `cap` when the next
107
+ * character is wide and would overshoot. Never wider than `cap` cells.
108
+ *
109
+ * When the first character already exceeds `cap` cells, returns "" (the caller
110
+ * must decide whether to force-take the character or skip it).
111
+ */
112
+ export function cellFit(text, cap) {
113
+ let w = 0;
114
+ let i = 0;
115
+ for (const ch of text) {
116
+ const cw = cellLen(ch);
117
+ if (w + cw > cap)
118
+ break;
119
+ w += cw;
120
+ i += ch.length;
121
+ }
122
+ return text.slice(0, i);
123
+ }
124
+ /**
125
+ * Returns the largest code-unit end offset starting from `startCU` whose
126
+ * prefix (from `startCU`) has cell width ≤ `cap`. Iterates from the given
127
+ * offset without slicing the tail, avoiding O(N²) allocation when called
128
+ * repeatedly across a long string.
129
+ *
130
+ * [LAW:types-are-the-program] returns CodePoint because for...of always
131
+ * stops on a code-point boundary.
132
+ */
133
+ export function cellFitFrom(text, startCU, cap) {
134
+ let w = 0;
135
+ let i = startCU;
136
+ while (i < text.length) {
137
+ const cp = text.codePointAt(i);
138
+ const ch = String.fromCodePoint(cp);
139
+ const cw = cellLen(ch);
140
+ if (w + cw > cap)
141
+ break;
142
+ w += cw;
143
+ i = asCodePoint(i + ch.length);
144
+ }
145
+ return i;
146
+ }
147
+ /**
148
+ * Returns the largest code-unit offset into `content` whose prefix has
149
+ * cell width ≤ `cellCol`. When `cellCol` falls mid-wide-character the
150
+ * function stops before that character (never advances into it).
151
+ * Clamps to `content.length` if `cellCol` exceeds the string's total
152
+ * cell width.
153
+ *
154
+ * This is the inverse of `cellLen(content.slice(0, codeUnit))` — given a
155
+ * visual column, return the corresponding string index.
156
+ *
157
+ * Returns `CodePoint` because `for...of` iteration always stops on a
158
+ * code-point boundary.
159
+ */
160
+ export function cellColToCodeUnitOffset(content, cellCol) {
161
+ let w = 0;
162
+ let i = 0;
163
+ for (const ch of content) {
164
+ if (w >= cellCol)
165
+ break;
166
+ const cw = cellLen(ch);
167
+ if (w + cw > cellCol)
168
+ break;
169
+ w += cw;
170
+ i += ch.length;
171
+ }
172
+ return asCodePoint(i);
173
+ }
174
+ /**
175
+ * Advance one full Unicode code point from `cu`, returning the code-unit
176
+ * offset of the start of the *next* code point. Returns `s.length` when
177
+ * already at or past the end.
178
+ *
179
+ * Handles surrogate pairs: when the code point at `cu` is a supplementary
180
+ * character (U+10000…U+10FFFF) it occupies 2 UTF-16 code units, so the
181
+ * returned offset advances by 2.
182
+ */
183
+ export function nextCodePoint(s, cu) {
184
+ if (cu >= s.length)
185
+ return asCodePoint(s.length);
186
+ const cp = s.codePointAt(cu);
187
+ return asCodePoint(cu + (cp > 0xFFFF ? 2 : 1));
188
+ }
189
+ /**
190
+ * Step back one full Unicode code point from `cu`, returning the code-unit
191
+ * offset of the start of the *previous* code point. Returns 0 when already
192
+ * at the start.
193
+ *
194
+ * Handles surrogate pairs: when the code unit at `cu - 1` is a low surrogate
195
+ * AND the code unit at `cu - 2` is a high surrogate, steps back 2 code units.
196
+ * Unpaired surrogates are treated as 1-CU characters.
197
+ */
198
+ export function prevCodePoint(s, cu) {
199
+ if (cu <= 0)
200
+ return asCodePoint(0);
201
+ const low = s.charCodeAt(cu - 1);
202
+ if (low >= 0xDC00 && low <= 0xDFFF && cu >= 2) {
203
+ const high = s.charCodeAt(cu - 2);
204
+ if (high >= 0xD800 && high <= 0xDBFF)
205
+ return asCodePoint(cu - 2);
206
+ }
207
+ return asCodePoint(cu - 1);
208
+ }
97
209
  // --- internal ---
98
210
  function cropToWidth(text, targetWidth) {
99
211
  let width = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"cells.js","sourceRoot":"","sources":["../../src/core/cells.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,WAAW,MAAM,cAAc,CAAC;AAEvC,gFAAgF;AAChF,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;AAC/C,MAAM,SAAS,GAAG,IAAI,CAAC;AAEvB;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAChC,2BAA2B;IAC3B,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC;IAC1C,CAAC;IACD,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QACtB,IAAI,YAAY,CAAC,IAAI,IAAI,SAAS;YAAE,YAAY,CAAC,KAAK,EAAE,CAAC;QACzD,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,UAAkB;IAC1D,IAAI,UAAU,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAChC,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,YAAY,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IAC7C,IAAI,YAAY,GAAG,UAAU,EAAE,CAAC;QAC9B,OAAO,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,YAAY,CAAC,CAAC;IACtD,CAAC;IACD,6CAA6C;IAC7C,OAAO,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AACvC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CACvB,IAAY,EACZ,QAAgB;IAEhB,IAAI,QAAQ,IAAI,CAAC;QAAE,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,QAAQ,IAAI,UAAU;QAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAE9C,4DAA4D;IAC5D,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,KAAK,GAAG,SAAS,GAAG,QAAQ;YAAE,MAAM;QACxC,KAAK,IAAI,SAAS,CAAC;QACnB,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEpC,wEAAwE;IACxE,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,QAAgB;IACtD,IAAI,QAAQ,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,UAAU,IAAI,QAAQ;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,SAAS,GAAG,IAAI,CAAC;IACrB,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,cAAc,IAAI,QAAQ,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtB,MAAM;QACR,CAAC;QACD,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACpD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,mBAAmB;AAEnB,SAAS,WAAW,CAAC,IAAY,EAAE,WAAmB;IACpD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,iEAAiE;IACjE,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,KAAK,GAAG,SAAS,GAAG,WAAW;YAAE,MAAM;QAC3C,KAAK,IAAI,SAAS,CAAC;QACnB,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC;IACnB,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjC,8DAA8D;IAC9D,MAAM,IAAI,GAAG,WAAW,GAAG,KAAK,CAAC;IACjC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"cells.js","sourceRoot":"","sources":["../../src/core/cells.ts"],"names":[],"mappings":"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"}
@@ -94,7 +94,6 @@ export declare class Console {
94
94
  }): void;
95
95
  private _styleToCss;
96
96
  private _writeSegments;
97
- private _renderSegment;
98
97
  private _write;
99
98
  }
100
99
  //# sourceMappingURL=console.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../src/core/console.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../src/core/console.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ import { RichText } from "./text.js";
9
9
  import { render as renderMarkup } from "./markup.js";
10
10
  import { ReprHighlighter } from "./highlighter.js";
11
11
  import { Rule } from "../renderables/rule.js";
12
- import { segmentToString } from "./render.js";
12
+ import { segmentsToString } from "./render.js";
13
13
  import { isRenderable } from "./protocol.js";
14
14
  function resolveStyle(style) {
15
15
  if (style === undefined)
@@ -222,10 +222,15 @@ export class Console {
222
222
  const final = this._style.isNull
223
223
  ? styled
224
224
  : [...Segment.applyStyle(styled, this._style)];
225
- // Output
225
+ // Output. The line-end goes through the same writeSegments funnel as
226
+ // every other emitted text so it survives recording — otherwise
227
+ // `exportText` and `exportHtml` would join consecutive prints onto a
228
+ // single line. [LAW:single-enforcer]
226
229
  this._writeSegments(final);
230
+ // The common default end is "\n" — reuse Segment's cached newline rather
231
+ // than allocating one per print; only a non-default end needs a fresh one.
227
232
  if (end)
228
- this._write(end);
233
+ this._writeSegments([end === "\n" ? Segment.line() : new Segment(end)]);
229
234
  }
230
235
  log(...args) {
231
236
  // Simple log implementation — adds timestamp
@@ -325,22 +330,21 @@ export class Console {
325
330
  return parts.join(";");
326
331
  }
327
332
  // --- Internal ---
333
+ // [LAW:single-enforcer] One encode call per write batch routes through the
334
+ // same `segmentsToString` tree-coalescer used by `renderToString`. Adjacent
335
+ // same-style segments share one SGR open/close pair on the wire instead of
336
+ // one pair per segment. Recording captures every non-control segment for
337
+ // replay regardless of how the bytes coalesce.
328
338
  _writeSegments(segments) {
329
- for (const segment of segments) {
330
- if (segment.isControl)
331
- continue;
332
- const text = this._renderSegment(segment);
333
- this._write(text);
334
- if (this._record) {
335
- this._recorded.push(segment);
339
+ if (this._record) {
340
+ for (const segment of segments) {
341
+ if (!segment.isControl)
342
+ this._recorded.push(segment);
336
343
  }
337
344
  }
338
- }
339
- // [LAW:single-enforcer] Defers to the same Segment-to-ANSI encoder used by
340
- // `renderToString`, so terminal output and string export agree by
341
- // construction.
342
- _renderSegment(segment) {
343
- return segmentToString(segment, this._colorSystem);
345
+ const encoded = segmentsToString(segments, this._colorSystem);
346
+ if (encoded.length > 0)
347
+ this._write(encoded);
344
348
  }
345
349
  _write(text) {
346
350
  if (this._buffer !== undefined && this._buffer !== "") {
@@ -1 +1 @@
1
- {"version":3,"file":"console.js","sourceRoot":"","sources":["../../src/core/console.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"console.js","sourceRoot":"","sources":["../../src/core/console.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAc,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAK/C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AA2C7C,SAAS,YAAY,CAAC,KAAiC;IACrD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,UAAU,CAAC;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACzD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,oEAAoE;AACpE,+EAA+E;AAC/E,2EAA2E;AAC3E,gDAAgD;AAChD,EAAE;AACF,wEAAwE;AACxE,8EAA8E;AAC9E,4EAA4E;AAC5E,4EAA4E;AAC5E,mDAAmD;AACnD,SAAS,wBAAwB,CAC/B,IAA4C,EAC5C,KAAc;IAEd,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/B,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,kBAAkB,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACrE,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,kBAAkB,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACzE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,4EAA4E;AAC5E,8EAA8E;AAC9E,mEAAmE;AACnE,8CAA8C;AAC9C,SAAS,cAAc,CAAC,OAAwB;IAC9C,IAAI,OAAO,EAAE,aAAa;QAAE,OAAO,IAAI,CAAC;IACxC,IAAI,OAAO,EAAE,IAAI;QAAE,OAAO,KAAK,CAAC;IAChC,IAAI,OAAO,OAAO,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IACjD,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI,KAAK,CAAC;AAC7E,CAAC;AAED,SAAS,eAAe;IACtB,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;QACtE,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;QACrE,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;IAC7C,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AACnC,CAAC;AAED,kBAAkB;AAElB,MAAM,OAAO,OAAO;IACV,YAAY,CAAoB;IAChC,MAAM,CAAqB;IAC3B,OAAO,CAAqB;IAC5B,MAAM,CAAQ;IACd,cAAc,CAAU;IACxB,iBAAiB,CAAsB;IACvC,KAAK,CAAoC;IACzC,OAAO,CAAU;IACjB,OAAO,CAAU;IACjB,OAAO,CAAU;IACjB,UAAU,CAAU;IACpB,MAAM,CAAQ;IACd,YAAY,CAAc;IAC1B,SAAS,CAAY;IACrB,OAAO,CAAS;IAExB,YAAY,OAAwB;QAClC,IAAI,CAAC,YAAY,GAAG,wBAAwB,CAC1C,OAAO,EAAE,WAAW,EACpB,cAAc,CAAC,OAAO,CAAC,CACxB,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,KAAK,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,MAAM,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,cAAc,GAAG,OAAO,EAAE,aAAa,IAAI,KAAK,CAAC;QACtD,IAAI,CAAC,iBAAiB,GAAG,OAAO,EAAE,gBAAgB,CAAC;QACnD,IAAI,CAAC,KAAK,GAAG,OAAO,EAAE,IAAI,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,MAAM,KAAK,KAAK,CAAC;QACzC,IAAI,CAAC,UAAU,GAAG,OAAO,EAAE,SAAS,KAAK,KAAK,CAAC;QAC/C,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,KAAK,IAAI,IAAI,KAAK,EAAE,CAAC;QAC5C,IAAI,CAAC,YAAY,GAAG,OAAO,EAAE,WAAW,IAAI,IAAI,eAAe,EAAE,CAAC;QAClE,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;IAED,qBAAqB;IAErB,IAAI,IAAI;QACN,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;QAC/B,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK;YAChC,MAAM,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM;SACpC,CAAC;IACJ,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,IAAI,eAAe,EAAE,CAAC,KAAK,CAAC;IAChD,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,IAAI,eAAe,EAAE,CAAC,MAAM,CAAC;IAClD,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,UAAU;QACZ,IAAI,IAAI,CAAC,cAAc;YAAE,OAAO,IAAI,CAAC;QACrC,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QAC7B,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI,KAAK,CAAC;QAC1E,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,aAAa;QACf,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,iBAAiB,CAAC;QACxE,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,2EAA2E;IAC3E,8EAA8E;IAC9E,2EAA2E;IAC3E,4DAA4D;IAC5D,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,OAAO;QACT,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,KAAK;YACpB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,KAAK;SACjB,CAAC;IACJ,CAAC;IAED,gBAAgB;IAEhB,KAAK,CAAC,GAAG,IAAe;QACtB,uDAAuD;QACvD,IAAI,IAAI,GAAiB,EAAE,CAAC;QAC5B,IAAI,KAAgB,CAAC;QAErB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACtC,IACE,IAAI,CAAC,MAAM,GAAG,CAAC;YACf,OAAO,OAAO,KAAK,QAAQ;YAC3B,OAAO,KAAK,IAAI;YAChB,CAAC,YAAY,CAAC,OAAO,CAAC;YACtB,CAAC,CAAC,OAAO,YAAY,QAAQ,CAAC;YAC9B,CAAC,OAAO,IAAI,OAAO,IAAI,SAAS,IAAI,OAAO,IAAI,QAAQ,IAAI,OAAO;gBACjE,WAAW,IAAI,OAAO,IAAI,UAAU,IAAI,OAAO,IAAI,KAAK,IAAI,OAAO;gBACnE,UAAU,IAAI,OAAO,IAAI,MAAM,IAAI,OAAO,IAAI,KAAK,IAAI,OAAO,CAAC,EAChE,CAAC;YACD,IAAI,GAAG,OAAuB,CAAC;YAC/B,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,IAAI,CAAC;QACf,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC;QAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC;QACtD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC;QAC7B,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE5C,+BAA+B;QAC/B,MAAM,WAAW,GAAiB,EAAE,CAAC;QACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;gBACjB,WAAW,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YACnD,CAAC;YAED,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;iBAAM,IAAI,IAAI,YAAY,QAAQ,EAAE,CAAC;gBACpC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC1B,IAAI,QAAkB,CAAC;gBACvB,IAAI,QAAQ,EAAE,CAAC;oBACb,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;gBAChC,CAAC;qBAAM,CAAC;oBACN,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAChC,CAAC;gBACD,QAAQ,CAAC,GAAG,GAAG,EAAE,CAAC;gBAClB,IAAI,WAAW,EAAE,CAAC;oBAChB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBACxC,CAAC;gBACD,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,mBAAmB;QACnB,MAAM,WAAW,GAAc,EAAE,CAAC;QAClC,MAAM,UAAU,GAAkB;YAChC,QAAQ,EAAE,IAAI,CAAC,KAAK;YACpB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAmC;YAC1F,QAAQ,EAAE,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAqC;YAC7F,MAAM,EAAE,IAAI,CAAC,QAAQ;SACtB,CAAC;QAEF,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,WAAW,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QACrD,CAAC;QAED,oBAAoB;QACpB,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM;YAC9B,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;QAErD,2BAA2B;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;YAC9B,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAEjD,qEAAqE;QACrE,gEAAgE;QAChE,qEAAqE;QACrE,qCAAqC;QACrC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC3B,yEAAyE;QACzE,2EAA2E;QAC3E,IAAI,GAAG;YAAE,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,GAAG,CAAC,GAAG,IAAe;QACpB,6CAA6C;QAC7C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,GAAG,CAAC,kBAAkB,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;QACzD,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAE7B,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,CAAC,KAAc,EAAE,OAAqB;QACxC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE;YAC3B,UAAU,EAAE,OAAO,EAAE,UAAU;YAC/B,KAAK,EAAE,OAAO,EAAE,KAAK;YACrB,KAAK,EAAE,OAAO,EAAE,KAAK;SACtB,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED,SAAS,CAAC,IAAqB,EAAE,OAAiD;QAChF,qCAAqC;QACrC,MAAM,IAAI,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3E,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAc,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAA0B,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAI,IAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAyB,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;QACnQ,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IAED,kBAAkB;IAElB,YAAY;QACV,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;IAED,UAAU;QACR,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,oCAAoC;IAEpC,UAAU,CAAC,EAAE,KAAK,GAAG,IAAI,KAA0B,EAAE;QACnD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxD,IAAI,KAAK;YAAE,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU,CAAC,EAAE,KAAK,GAAG,IAAI,KAA0B,EAAE;QACnD,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;QACxD,KAAK,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;QACjF,KAAK,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;QACtE,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAEzC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACrC,IAAI,OAAO,CAAC,SAAS;gBAAE,SAAS;YAChC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI;iBACzB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;iBACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;iBACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAgB,GAAG,KAAK,OAAO,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACvE,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACnC,IAAI,KAAK;YAAE,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC;IAED,QAAQ,CAAC,IAAY,EAAE,OAA6B;QAClD,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,QAAQ,CAAC,IAAY,EAAE,OAA6B;QAClD,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAEO,WAAW,CAAC,KAAwB;QAC1C,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QACtC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC/C,IAAI,KAAK,CAAC,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAClD,IAAI,KAAK,CAAC,GAAG;YAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACzC,MAAM,cAAc,GAAa,EAAE,CAAC;QACpC,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,UAAU;YAAE,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1E,IAAI,KAAK,CAAC,MAAM;YAAE,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACtD,IAAI,KAAK,CAAC,QAAQ;YAAE,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,cAAc,CAAC,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,mBAAmB,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrF,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YAC1C,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAC9C,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YACvC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,mBAAmB;IAEnB,2EAA2E;IAC3E,4EAA4E;IAC5E,2EAA2E;IAC3E,yEAAyE;IACzE,+CAA+C;IACvC,cAAc,CAAC,QAAmB;QACxC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,IAAI,CAAC,OAAO,CAAC,SAAS;oBAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAEO,MAAM,CAAC,IAAY;QACzB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,EAAE,EAAE,CAAC;YACtD,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC;QACvB,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9E,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"highlighter.d.ts","sourceRoot":"","sources":["../../src/core/highlighter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAIrC,8BAAsB,WAAW;IAC/B,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAExC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ;CAK9B;AAID,qBAAa,eAAgB,SAAQ,WAAW;IAC9C,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;CAGjC;AAID,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C,MAAM,CAAC,UAAU,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAM;IAC5C;;;qEAGiE;IACjE,MAAM,CAAC,SAAS,SAAM;IAEtB,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;CAuChC;AAKD,qBAAa,eAAgB,SAAQ,gBAAgB;IACnD,MAAM,CAAC,SAAS,SAAW;IAC3B,MAAM,CAAC,UAAU,WAaf;CACH;AAID,qBAAa,eAAgB,SAAQ,gBAAgB;IACnD,MAAM,CAAC,SAAS,SAAW;IAC3B,MAAM,CAAC,UAAU,WAOf;CACH;AAID,qBAAa,kBAAmB,SAAQ,gBAAgB;IACtD,MAAM,CAAC,SAAS,SAAc;IAC9B,MAAM,CAAC,UAAU,WAIf;CACH"}
1
+ {"version":3,"file":"highlighter.d.ts","sourceRoot":"","sources":["../../src/core/highlighter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAIrC,8BAAsB,WAAW;IAC/B,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAExC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ;CAK9B;AAID,qBAAa,eAAgB,SAAQ,WAAW;IAC9C,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;CAGjC;AAID,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C,MAAM,CAAC,UAAU,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAM;IAC5C;;;qEAGiE;IACjE,MAAM,CAAC,SAAS,SAAM;IAEtB,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;CAuChC;AAKD,qBAAa,eAAgB,SAAQ,gBAAgB;IACnD,OAAgB,SAAS,SAAW;IACpC,OAAgB,UAAU,WAaxB;CACH;AAID,qBAAa,eAAgB,SAAQ,gBAAgB;IACnD,OAAgB,SAAS,SAAW;IACpC,OAAgB,UAAU,WAOxB;CACH;AAID,qBAAa,kBAAmB,SAAQ,gBAAgB;IACtD,OAAgB,SAAS,SAAc;IACvC,OAAgB,UAAU,WAIxB;CACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"highlighter.js","sourceRoot":"","sources":["../../src/core/highlighter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"highlighter.js","sourceRoot":"","sources":["../../src/core/highlighter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * OKLCH color space — perceptually-uniform polar form of OKLab.
3
+ *
4
+ * Math from Björn Ottosson's OKLab specification:
5
+ * https://bottosson.github.io/posts/oklab/
6
+ *
7
+ * The full pipeline:
8
+ * sRGB (0..255 int) ↔ sRGB linear (0..1 float) ↔ OKLab ↔ OKLCH polar
9
+ * `fromRgba` walks left→right, `toRgba` walks right→left. The only lossy
10
+ * step is the final 0..255 quantization; the float math itself is
11
+ * reversible to within a few ULP.
12
+ *
13
+ * [LAW:one-type-per-behavior] OKLCH and sRGB are different *behaviors*:
14
+ * sRGB is the wire format terminals consume (what ANSI escape codes
15
+ * carry); OKLCH is the perceptual manipulation space (where equal
16
+ * numerical deltas mean equal perceptual deltas, which is the property
17
+ * "transposition" requires). Two types, mutual conversion, no hybrid.
18
+ *
19
+ * [LAW:one-way-deps] This module imports `ColorRgba` from core/color and
20
+ * nothing else from inside the project. Nothing in core/ depends back on
21
+ * this file.
22
+ */
23
+ import { ColorRgba } from "./color.js";
24
+ /**
25
+ * A perceptually-uniform color transform.
26
+ *
27
+ * [LAW:dataflow-not-control-flow] Identity is *data* (`IDENTITY`), not a
28
+ * special case. Every transposition runs the same code path — the values
29
+ * decide whether the operation is a no-op or a 180° rotation.
30
+ *
31
+ * Lightness is parameterized as `L' = clamp01(L * scale + shift)` to make
32
+ * "invert" expressible as `{scale: -1, shift: 1}` without a boolean knob.
33
+ */
34
+ export interface ThemeKey {
35
+ /** Hue offset in degrees; positive rotates toward warmer→cooler→back. */
36
+ readonly hueShift: number;
37
+ /** Multiplier on chroma. 0 = grayscale, 1 = identity, >1 = more saturated. */
38
+ readonly chromaScale: number;
39
+ /** Multiplier on lightness. 1 = identity, -1 = invert around the L axis. */
40
+ readonly lightnessScale: number;
41
+ /** Additive on lightness; applied *after* the scale. */
42
+ readonly lightnessShift: number;
43
+ }
44
+ export declare const IDENTITY: ThemeKey;
45
+ /**
46
+ * Flip lightness around the midpoint (`L' = 1 - L`) with hue and chroma
47
+ * untouched. Combined with the anchor logic in `transposePalette`, this
48
+ * converts a dark theme to its light "octave": semantic anchors
49
+ * (error/success/warning) still lightness-invert — only their *hue* is
50
+ * preserved — so errors stay red and dark-on-light becomes light-on-dark.
51
+ */
52
+ export declare const INVERT_LIGHTNESS: ThemeKey;
53
+ /**
54
+ * Whether a key is the no-op transform. Exported so that callers
55
+ * (`transposePalette`) can fast-path byte-exact identity without going
56
+ * through the lossy sRGB↔OKLCH round-trip. [LAW:one-source-of-truth] —
57
+ * the predicate lives once, here.
58
+ */
59
+ export declare function isIdentityKey(k: ThemeKey): boolean;
60
+ /**
61
+ * Immutable OKLCH color. `l` ∈ [0, 1] (lightness), `c` ≥ 0 (chroma; typical
62
+ * sRGB-representable colors top out near 0.32), `h` ∈ [0, 360) (hue
63
+ * degrees), `alpha` ∈ [0, 1].
64
+ *
65
+ * [LAW:single-enforcer] Constructor is the only validation site, matching
66
+ * the `ColorRgba` pattern. Out-of-range `alpha` throws. l/c/h must be
67
+ * finite but are *not* clamped at construction — they're clamped during
68
+ * `toRgba` instead, so transforms can pass through intermediate
69
+ * representations (e.g. h = 720°, c = -0.1 mid-pipeline) before the final
70
+ * sRGB-quantization step normalizes them.
71
+ */
72
+ export declare class Oklch {
73
+ readonly l: number;
74
+ readonly c: number;
75
+ readonly h: number;
76
+ readonly alpha: number;
77
+ constructor(l: number, c: number, h: number, alpha?: number);
78
+ /** sRGB → linear → OKLab → polar. Pure; no I/O, no allocation beyond the result. */
79
+ static fromRgba(color: ColorRgba): Oklch;
80
+ /**
81
+ * Polar → OKLab → linear → sRGB (with chroma-bisection gamut clamping).
82
+ *
83
+ * [LAW:single-enforcer] All sRGB-gamut clamping for OKLCH happens here.
84
+ * Callers don't see intermediate float channels; they get a valid
85
+ * `ColorRgba` or a thrown error.
86
+ */
87
+ toRgba(): ColorRgba;
88
+ /**
89
+ * Apply a `ThemeKey`. Returns a new `Oklch`; pure.
90
+ *
91
+ * [LAW:dataflow-not-control-flow] Identity short-circuits to `this` —
92
+ * same shape as `ColorRgba.compositeOver(bg)` returning `this` when
93
+ * `alpha === 1`. Callers invoke unconditionally; the data decides.
94
+ */
95
+ applyKey(k: ThemeKey): Oklch;
96
+ /** Linear-sRGB coordinates for an explicit (l, C, h). Pure; `toRgba` passes
97
+ * already-normalized values so this never sees out-of-range inputs. */
98
+ private toLinearRgb;
99
+ /**
100
+ * Largest chroma ≤ `c` whose (l, h) projection lies in sRGB.
101
+ * Standard chroma-reduction-by-bisection: 24 iterations gives ~1e-7
102
+ * precision, more than enough since the next step quantizes to 1/255.
103
+ */
104
+ private findInGamutChroma;
105
+ }
106
+ //# sourceMappingURL=oklch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oklch.d.ts","sourceRoot":"","sources":["../../src/core/oklch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAMvC;;;;;;;;;GASG;AACH,MAAM,WAAW,QAAQ;IACvB,yEAAyE;IACzE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,8EAA8E;IAC9E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,4EAA4E;IAC5E,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,wDAAwD;IACxD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,eAAO,MAAM,QAAQ,EAAE,QAKrB,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,EAAE,QAK7B,CAAC;AAEH;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,QAAQ,GAAG,OAAO,CAOlD;AAwCD;;;;;;;;;;;GAWG;AACH,qBAAa,KAAK;IAEd,QAAQ,CAAC,CAAC,EAAE,MAAM;IAClB,QAAQ,CAAC,CAAC,EAAE,MAAM;IAClB,QAAQ,CAAC,CAAC,EAAE,MAAM;IAClB,QAAQ,CAAC,KAAK,EAAE,MAAM;gBAHb,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,GAAE,MAAU;IAU5B,oFAAoF;IACpF,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK;IA0BxC;;;;;;OAMG;IACH,MAAM,IAAI,SAAS;IAgBnB;;;;;;OAMG;IACH,QAAQ,CAAC,CAAC,EAAE,QAAQ,GAAG,KAAK;IAY5B;2EACuE;IACvE,OAAO,CAAC,WAAW;IAoBnB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;CAa1B"}