@flyingrobots/bijou 4.2.0 → 4.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +39 -179
- package/dist/context-theme.d.ts +15 -0
- package/dist/context-theme.d.ts.map +1 -0
- package/dist/context-theme.js +23 -0
- package/dist/context-theme.js.map +1 -0
- package/dist/core/components/alert-v3.js +4 -4
- package/dist/core/components/alert-v3.js.map +1 -1
- package/dist/core/components/alert.d.ts.map +1 -1
- package/dist/core/components/alert.js +12 -5
- package/dist/core/components/alert.js.map +1 -1
- package/dist/core/components/badge.d.ts.map +1 -1
- package/dist/core/components/badge.js +38 -7
- package/dist/core/components/badge.js.map +1 -1
- package/dist/core/components/box-v3.d.ts.map +1 -1
- package/dist/core/components/box-v3.js +101 -26
- package/dist/core/components/box-v3.js.map +1 -1
- package/dist/core/components/braille-chart.d.ts +45 -0
- package/dist/core/components/braille-chart.d.ts.map +1 -0
- package/dist/core/components/braille-chart.js +94 -0
- package/dist/core/components/braille-chart.js.map +1 -0
- package/dist/core/components/data-viz-utils.d.ts +25 -0
- package/dist/core/components/data-viz-utils.d.ts.map +1 -0
- package/dist/core/components/data-viz-utils.js +72 -0
- package/dist/core/components/data-viz-utils.js.map +1 -0
- package/dist/core/components/index.d.ts +8 -0
- package/dist/core/components/index.d.ts.map +1 -1
- package/dist/core/components/index.js +4 -0
- package/dist/core/components/index.js.map +1 -1
- package/dist/core/components/perf-overlay.d.ts +63 -0
- package/dist/core/components/perf-overlay.d.ts.map +1 -0
- package/dist/core/components/perf-overlay.js +84 -0
- package/dist/core/components/perf-overlay.js.map +1 -0
- package/dist/core/components/preference-list.d.ts.map +1 -1
- package/dist/core/components/preference-list.js +63 -11
- package/dist/core/components/preference-list.js.map +1 -1
- package/dist/core/components/separator-v3.d.ts.map +1 -1
- package/dist/core/components/separator-v3.js +55 -15
- package/dist/core/components/separator-v3.js.map +1 -1
- package/dist/core/components/sparkline.d.ts +33 -0
- package/dist/core/components/sparkline.d.ts.map +1 -0
- package/dist/core/components/sparkline.js +45 -0
- package/dist/core/components/sparkline.js.map +1 -0
- package/dist/core/components/stats-panel.d.ts +50 -0
- package/dist/core/components/stats-panel.d.ts.map +1 -0
- package/dist/core/components/stats-panel.js +83 -0
- package/dist/core/components/stats-panel.js.map +1 -0
- package/dist/core/components/surface-text.d.ts +1 -1
- package/dist/core/components/surface-text.d.ts.map +1 -1
- package/dist/core/components/surface-text.js +80 -9
- package/dist/core/components/surface-text.js.map +1 -1
- package/dist/core/components/table-v3.d.ts.map +1 -1
- package/dist/core/components/table-v3.js +34 -2
- package/dist/core/components/table-v3.js.map +1 -1
- package/dist/core/components/types.d.ts +4 -4
- package/dist/core/components/types.d.ts.map +1 -1
- package/dist/core/render/differ.d.ts +12 -1
- package/dist/core/render/differ.d.ts.map +1 -1
- package/dist/core/render/differ.js +502 -11
- package/dist/core/render/differ.js.map +1 -1
- package/dist/core/render/packed-cell.d.ts +110 -0
- package/dist/core/render/packed-cell.d.ts.map +1 -0
- package/dist/core/render/packed-cell.js +301 -0
- package/dist/core/render/packed-cell.js.map +1 -0
- package/dist/core/text/grapheme.d.ts.map +1 -1
- package/dist/core/text/grapheme.js +17 -5
- package/dist/core/text/grapheme.js.map +1 -1
- package/dist/core/theme/presets.d.ts +9 -1
- package/dist/core/theme/presets.d.ts.map +1 -1
- package/dist/core/theme/presets.js +44 -2
- package/dist/core/theme/presets.js.map +1 -1
- package/dist/core/theme/resolve.d.ts.map +1 -1
- package/dist/core/theme/resolve.js +21 -1
- package/dist/core/theme/resolve.js.map +1 -1
- package/dist/core/theme/tokens.d.ts +12 -0
- package/dist/core/theme/tokens.d.ts.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/ports/io.d.ts +17 -0
- package/dist/ports/io.d.ts.map +1 -1
- package/dist/ports/surface.d.ts +83 -2
- package/dist/ports/surface.d.ts.map +1 -1
- package/dist/ports/surface.js +319 -37
- package/dist/ports/surface.js.map +1 -1
- package/package.json +5 -1
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Byte-packed cell encoding for zero-allocation surface rendering.
|
|
3
|
+
*
|
|
4
|
+
* Layout per cell: 10 bytes
|
|
5
|
+
* [0-1] char (uint16 LE code point, or side-table index if >= SIDE_TABLE_THRESHOLD)
|
|
6
|
+
* [2-4] fg R, G, B
|
|
7
|
+
* [5-7] bg R, G, B
|
|
8
|
+
* [8] flags bitfield
|
|
9
|
+
* [9] alpha byte
|
|
10
|
+
*
|
|
11
|
+
* Flags byte [8]:
|
|
12
|
+
* bit 0: bold
|
|
13
|
+
* bit 1: dim
|
|
14
|
+
* bit 2: strikethrough
|
|
15
|
+
* bit 3: inverse
|
|
16
|
+
* bit 4-5: underline style (00=none, 01=underline, 10=curly, 11=dotted-or-dashed)
|
|
17
|
+
* bit 6: dashed (disambiguates dotted vs dashed when bits 4-5 = 11)
|
|
18
|
+
* bit 7: empty
|
|
19
|
+
*
|
|
20
|
+
* Alpha byte [9]:
|
|
21
|
+
* bits 0-5: opacity (0-63, quantized from 0.0-1.0)
|
|
22
|
+
* bit 6: fg present (0 = terminal default, 1 = explicit RGB)
|
|
23
|
+
* bit 7: bg present (0 = terminal default, 1 = explicit RGB)
|
|
24
|
+
*/
|
|
25
|
+
/** Bytes per packed cell. */
|
|
26
|
+
export declare const CELL_STRIDE = 10;
|
|
27
|
+
/** Offset of the char code (uint16 LE) within a cell. */
|
|
28
|
+
export declare const OFF_CHAR = 0;
|
|
29
|
+
/** Offset of fg R within a cell. */
|
|
30
|
+
export declare const OFF_FG_R = 2;
|
|
31
|
+
/** Offset of fg G within a cell. */
|
|
32
|
+
export declare const OFF_FG_G = 3;
|
|
33
|
+
/** Offset of fg B within a cell. */
|
|
34
|
+
export declare const OFF_FG_B = 4;
|
|
35
|
+
/** Offset of bg R within a cell. */
|
|
36
|
+
export declare const OFF_BG_R = 5;
|
|
37
|
+
/** Offset of bg G within a cell. */
|
|
38
|
+
export declare const OFF_BG_G = 6;
|
|
39
|
+
/** Offset of bg B within a cell. */
|
|
40
|
+
export declare const OFF_BG_B = 7;
|
|
41
|
+
/** Offset of the flags byte within a cell. */
|
|
42
|
+
export declare const OFF_FLAGS = 8;
|
|
43
|
+
/** Offset of the alpha/presence byte within a cell. */
|
|
44
|
+
export declare const OFF_ALPHA = 9;
|
|
45
|
+
export declare const FLAG_BOLD: number;
|
|
46
|
+
export declare const FLAG_DIM: number;
|
|
47
|
+
export declare const FLAG_STRIKETHROUGH: number;
|
|
48
|
+
export declare const FLAG_INVERSE: number;
|
|
49
|
+
/** Underline style occupies bits 4–5. */
|
|
50
|
+
export declare const UNDERLINE_SHIFT = 4;
|
|
51
|
+
export declare const UNDERLINE_MASK: number;
|
|
52
|
+
export declare const UNDERLINE_NONE: number;
|
|
53
|
+
export declare const UNDERLINE_SOLID: number;
|
|
54
|
+
export declare const UNDERLINE_CURLY: number;
|
|
55
|
+
export declare const UNDERLINE_DOTDASH: number;
|
|
56
|
+
/** When underline style = DOTDASH, this bit distinguishes dashed from dotted. */
|
|
57
|
+
export declare const FLAG_DASHED: number;
|
|
58
|
+
export declare const FLAG_EMPTY: number;
|
|
59
|
+
/** Opacity occupies bits 0–5 (0–63). */
|
|
60
|
+
export declare const OPACITY_MASK = 63;
|
|
61
|
+
/** Bit 6: foreground color is explicitly set. */
|
|
62
|
+
export declare const FLAG_FG_SET: number;
|
|
63
|
+
/** Bit 7: background color is explicitly set. */
|
|
64
|
+
export declare const FLAG_BG_SET: number;
|
|
65
|
+
/** Threshold for side-table char indices (values >= this are side-table lookups). */
|
|
66
|
+
export declare const SIDE_TABLE_THRESHOLD = 61440;
|
|
67
|
+
/** Encode a modifier string array into the flags byte value. */
|
|
68
|
+
export declare function encodeModifiers(modifiers: readonly string[] | undefined): number;
|
|
69
|
+
/** Decode the flags byte back into a modifier string array. Returns undefined if no modifiers. */
|
|
70
|
+
export declare function decodeModifiers(flags: number): string[] | undefined;
|
|
71
|
+
/**
|
|
72
|
+
* Parse '#rrggbb' into [r, g, b].
|
|
73
|
+
*
|
|
74
|
+
* **WARNING: returns a static reusable tuple.** The returned array is
|
|
75
|
+
* shared across all calls. Callers MUST read or destructure the values
|
|
76
|
+
* before calling `parseHex` again. Holding a reference across another
|
|
77
|
+
* `parseHex` call will see clobbered values.
|
|
78
|
+
*
|
|
79
|
+
* Zero-alloc: no slice(), no parseInt(), no intermediate strings.
|
|
80
|
+
*
|
|
81
|
+
* @returns A static [r, g, b] tuple, or undefined for invalid input.
|
|
82
|
+
*/
|
|
83
|
+
export declare function parseHex(hex: string): [number, number, number] | undefined;
|
|
84
|
+
/**
|
|
85
|
+
* Parse '#rrggbb' and write R, G, B directly into a Uint8Array at the
|
|
86
|
+
* given offset. Returns true on success, false for invalid input.
|
|
87
|
+
* Zero-alloc: no intermediate strings or tuples.
|
|
88
|
+
*/
|
|
89
|
+
export declare function parseHexInto(hex: string, out: Uint8Array, off: number): boolean;
|
|
90
|
+
/** Encode [r, g, b] to '#rrggbb'. Uses a lookup table — no toString(16) per call. */
|
|
91
|
+
export declare function toHex(r: number, g: number, b: number): string;
|
|
92
|
+
/** Quantize opacity (0.0–1.0) into 6-bit value (0–63). */
|
|
93
|
+
export declare function encodeOpacity(opacity: number | undefined): number;
|
|
94
|
+
/** Decode 6-bit opacity back to 0.0–1.0. */
|
|
95
|
+
export declare function decodeOpacity(quantized: number): number;
|
|
96
|
+
/** Sentinel code for an empty-string char (double-width continuation cell). */
|
|
97
|
+
export declare const CHAR_EMPTY = 0;
|
|
98
|
+
/** Encode a character string into a uint16 value and optional side-table entry. */
|
|
99
|
+
export declare function encodeChar(char: string, sideTable: string[]): number;
|
|
100
|
+
/** Decode a uint16 char value back to a string. */
|
|
101
|
+
export declare function decodeChar(code: number, sideTable: readonly string[]): string;
|
|
102
|
+
/** Write a Cell into the packed buffer at the given cell index. */
|
|
103
|
+
export declare function packCell(buf: Uint8Array, cellIndex: number, charCode: number, fgR: number, fgG: number, fgB: number, fgSet: boolean, bgR: number, bgG: number, bgB: number, bgSet: boolean, flags: number, opacity: number): void;
|
|
104
|
+
/** Compare two packed cells for equality. */
|
|
105
|
+
export declare function packedCellsEqual(buf: Uint8Array, idxA: number, idxB: number): boolean;
|
|
106
|
+
/** Compare two packed cells across different buffers. */
|
|
107
|
+
export declare function packedCellsEqualCross(bufA: Uint8Array, idxA: number, bufB: Uint8Array, idxB: number): boolean;
|
|
108
|
+
/** Check if two packed cells have the same style (fg, bg, flags, alpha — ignoring char). */
|
|
109
|
+
export declare function packedStyleEqual(buf: Uint8Array, idxA: number, idxB: number): boolean;
|
|
110
|
+
//# sourceMappingURL=packed-cell.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packed-cell.d.ts","sourceRoot":"","sources":["../../../src/core/render/packed-cell.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,6BAA6B;AAC7B,eAAO,MAAM,WAAW,KAAK,CAAC;AAE9B,yDAAyD;AACzD,eAAO,MAAM,QAAQ,IAAI,CAAC;AAC1B,oCAAoC;AACpC,eAAO,MAAM,QAAQ,IAAI,CAAC;AAC1B,oCAAoC;AACpC,eAAO,MAAM,QAAQ,IAAI,CAAC;AAC1B,oCAAoC;AACpC,eAAO,MAAM,QAAQ,IAAI,CAAC;AAC1B,oCAAoC;AACpC,eAAO,MAAM,QAAQ,IAAI,CAAC;AAC1B,oCAAoC;AACpC,eAAO,MAAM,QAAQ,IAAI,CAAC;AAC1B,oCAAoC;AACpC,eAAO,MAAM,QAAQ,IAAI,CAAC;AAC1B,8CAA8C;AAC9C,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,uDAAuD;AACvD,eAAO,MAAM,SAAS,IAAI,CAAC;AAG3B,eAAO,MAAM,SAAS,QAAkB,CAAC;AACzC,eAAO,MAAM,QAAQ,QAAmB,CAAC;AACzC,eAAO,MAAM,kBAAkB,QAAS,CAAC;AACzC,eAAO,MAAM,YAAY,QAAe,CAAC;AACzC,yCAAyC;AACzC,eAAO,MAAM,eAAe,IAAO,CAAC;AACpC,eAAO,MAAM,cAAc,QAA8B,CAAC;AAC1D,eAAO,MAAM,cAAc,QAA8B,CAAC;AAC1D,eAAO,MAAM,eAAe,QAA6B,CAAC;AAC1D,eAAO,MAAM,eAAe,QAA6B,CAAC;AAC1D,eAAO,MAAM,iBAAiB,QAA2B,CAAC;AAC1D,iFAAiF;AACjF,eAAO,MAAM,WAAW,QAAgB,CAAC;AACzC,eAAO,MAAM,UAAU,QAAiB,CAAC;AAGzC,wCAAwC;AACxC,eAAO,MAAM,YAAY,KAAc,CAAC;AACxC,iDAAiD;AACjD,eAAO,MAAM,WAAW,QAAW,CAAC;AACpC,iDAAiD;AACjD,eAAO,MAAM,WAAW,QAAW,CAAC;AAEpC,qFAAqF;AACrF,eAAO,MAAM,oBAAoB,QAAS,CAAC;AAkB3C,gEAAgE;AAChE,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,CAgBhF;AAED,kGAAkG;AAClG,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAiBnE;AAwBD;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAU1E;AAQD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAU/E;AAED,qFAAqF;AACrF,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAE7D;AAID,0DAA0D;AAC1D,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAIjE;AAED,4CAA4C;AAC5C,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAIvD;AAID,+EAA+E;AAC/E,eAAO,MAAM,UAAU,IAAI,CAAC;AAE5B,mFAAmF;AACnF,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EAAE,GAClB,MAAM,CAcR;AAED,mDAAmD;AACnD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAO7E;AAID,mEAAmE;AACnE,wBAAgB,QAAQ,CACtB,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EACrD,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EACrD,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACd,IAAI,CAmBN;AAED,6CAA6C;AAC7C,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAOrF;AAED,yDAAyD;AACzD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAC9B,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAC7B,OAAO,CAOT;AAED,4FAA4F;AAC5F,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CASrF"}
|
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Byte-packed cell encoding for zero-allocation surface rendering.
|
|
3
|
+
*
|
|
4
|
+
* Layout per cell: 10 bytes
|
|
5
|
+
* [0-1] char (uint16 LE code point, or side-table index if >= SIDE_TABLE_THRESHOLD)
|
|
6
|
+
* [2-4] fg R, G, B
|
|
7
|
+
* [5-7] bg R, G, B
|
|
8
|
+
* [8] flags bitfield
|
|
9
|
+
* [9] alpha byte
|
|
10
|
+
*
|
|
11
|
+
* Flags byte [8]:
|
|
12
|
+
* bit 0: bold
|
|
13
|
+
* bit 1: dim
|
|
14
|
+
* bit 2: strikethrough
|
|
15
|
+
* bit 3: inverse
|
|
16
|
+
* bit 4-5: underline style (00=none, 01=underline, 10=curly, 11=dotted-or-dashed)
|
|
17
|
+
* bit 6: dashed (disambiguates dotted vs dashed when bits 4-5 = 11)
|
|
18
|
+
* bit 7: empty
|
|
19
|
+
*
|
|
20
|
+
* Alpha byte [9]:
|
|
21
|
+
* bits 0-5: opacity (0-63, quantized from 0.0-1.0)
|
|
22
|
+
* bit 6: fg present (0 = terminal default, 1 = explicit RGB)
|
|
23
|
+
* bit 7: bg present (0 = terminal default, 1 = explicit RGB)
|
|
24
|
+
*/
|
|
25
|
+
/** Bytes per packed cell. */
|
|
26
|
+
export const CELL_STRIDE = 10;
|
|
27
|
+
/** Offset of the char code (uint16 LE) within a cell. */
|
|
28
|
+
export const OFF_CHAR = 0;
|
|
29
|
+
/** Offset of fg R within a cell. */
|
|
30
|
+
export const OFF_FG_R = 2;
|
|
31
|
+
/** Offset of fg G within a cell. */
|
|
32
|
+
export const OFF_FG_G = 3;
|
|
33
|
+
/** Offset of fg B within a cell. */
|
|
34
|
+
export const OFF_FG_B = 4;
|
|
35
|
+
/** Offset of bg R within a cell. */
|
|
36
|
+
export const OFF_BG_R = 5;
|
|
37
|
+
/** Offset of bg G within a cell. */
|
|
38
|
+
export const OFF_BG_G = 6;
|
|
39
|
+
/** Offset of bg B within a cell. */
|
|
40
|
+
export const OFF_BG_B = 7;
|
|
41
|
+
/** Offset of the flags byte within a cell. */
|
|
42
|
+
export const OFF_FLAGS = 8;
|
|
43
|
+
/** Offset of the alpha/presence byte within a cell. */
|
|
44
|
+
export const OFF_ALPHA = 9;
|
|
45
|
+
// --- Flags byte bits ---
|
|
46
|
+
export const FLAG_BOLD = 1 << 0;
|
|
47
|
+
export const FLAG_DIM = 1 << 1;
|
|
48
|
+
export const FLAG_STRIKETHROUGH = 1 << 2;
|
|
49
|
+
export const FLAG_INVERSE = 1 << 3;
|
|
50
|
+
/** Underline style occupies bits 4–5. */
|
|
51
|
+
export const UNDERLINE_SHIFT = 4;
|
|
52
|
+
export const UNDERLINE_MASK = 0b11 << UNDERLINE_SHIFT;
|
|
53
|
+
export const UNDERLINE_NONE = 0b00 << UNDERLINE_SHIFT;
|
|
54
|
+
export const UNDERLINE_SOLID = 0b01 << UNDERLINE_SHIFT;
|
|
55
|
+
export const UNDERLINE_CURLY = 0b10 << UNDERLINE_SHIFT;
|
|
56
|
+
export const UNDERLINE_DOTDASH = 0b11 << UNDERLINE_SHIFT;
|
|
57
|
+
/** When underline style = DOTDASH, this bit distinguishes dashed from dotted. */
|
|
58
|
+
export const FLAG_DASHED = 1 << 6;
|
|
59
|
+
export const FLAG_EMPTY = 1 << 7;
|
|
60
|
+
// --- Alpha byte bits ---
|
|
61
|
+
/** Opacity occupies bits 0–5 (0–63). */
|
|
62
|
+
export const OPACITY_MASK = 0b00111111;
|
|
63
|
+
/** Bit 6: foreground color is explicitly set. */
|
|
64
|
+
export const FLAG_FG_SET = 1 << 6;
|
|
65
|
+
/** Bit 7: background color is explicitly set. */
|
|
66
|
+
export const FLAG_BG_SET = 1 << 7;
|
|
67
|
+
/** Threshold for side-table char indices (values >= this are side-table lookups). */
|
|
68
|
+
export const SIDE_TABLE_THRESHOLD = 0xF000;
|
|
69
|
+
// --- Modifier encoding ---
|
|
70
|
+
const MODIFIER_TO_FLAG = {
|
|
71
|
+
'bold': FLAG_BOLD,
|
|
72
|
+
'dim': FLAG_DIM,
|
|
73
|
+
'strikethrough': FLAG_STRIKETHROUGH,
|
|
74
|
+
'inverse': FLAG_INVERSE,
|
|
75
|
+
};
|
|
76
|
+
const MODIFIER_UNDERLINE_MAP = {
|
|
77
|
+
'underline': UNDERLINE_SOLID,
|
|
78
|
+
'curly-underline': UNDERLINE_CURLY,
|
|
79
|
+
'dotted-underline': UNDERLINE_DOTDASH,
|
|
80
|
+
'dashed-underline': UNDERLINE_DOTDASH | FLAG_DASHED,
|
|
81
|
+
};
|
|
82
|
+
/** Encode a modifier string array into the flags byte value. */
|
|
83
|
+
export function encodeModifiers(modifiers) {
|
|
84
|
+
if (!modifiers || modifiers.length === 0)
|
|
85
|
+
return 0;
|
|
86
|
+
let flags = 0;
|
|
87
|
+
for (const mod of modifiers) {
|
|
88
|
+
const flag = MODIFIER_TO_FLAG[mod];
|
|
89
|
+
if (flag !== undefined) {
|
|
90
|
+
flags |= flag;
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
const underline = MODIFIER_UNDERLINE_MAP[mod];
|
|
94
|
+
if (underline !== undefined) {
|
|
95
|
+
// Clear previous underline bits, then set new ones
|
|
96
|
+
flags = (flags & ~(UNDERLINE_MASK | FLAG_DASHED)) | underline;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return flags;
|
|
101
|
+
}
|
|
102
|
+
/** Decode the flags byte back into a modifier string array. Returns undefined if no modifiers. */
|
|
103
|
+
export function decodeModifiers(flags) {
|
|
104
|
+
const mods = [];
|
|
105
|
+
if (flags & FLAG_BOLD)
|
|
106
|
+
mods.push('bold');
|
|
107
|
+
if (flags & FLAG_DIM)
|
|
108
|
+
mods.push('dim');
|
|
109
|
+
if (flags & FLAG_STRIKETHROUGH)
|
|
110
|
+
mods.push('strikethrough');
|
|
111
|
+
if (flags & FLAG_INVERSE)
|
|
112
|
+
mods.push('inverse');
|
|
113
|
+
const underlineStyle = flags & UNDERLINE_MASK;
|
|
114
|
+
if (underlineStyle === UNDERLINE_SOLID) {
|
|
115
|
+
mods.push('underline');
|
|
116
|
+
}
|
|
117
|
+
else if (underlineStyle === UNDERLINE_CURLY) {
|
|
118
|
+
mods.push('curly-underline');
|
|
119
|
+
}
|
|
120
|
+
else if (underlineStyle === UNDERLINE_DOTDASH) {
|
|
121
|
+
mods.push(flags & FLAG_DASHED ? 'dashed-underline' : 'dotted-underline');
|
|
122
|
+
}
|
|
123
|
+
return mods.length > 0 ? mods : undefined;
|
|
124
|
+
}
|
|
125
|
+
// --- Hex color encoding/decoding ---
|
|
126
|
+
/** Convert a hex digit char code to its numeric value (0–15). Returns -1 for invalid. */
|
|
127
|
+
function hexVal(c) {
|
|
128
|
+
// 0–9: 0x30–0x39, a–f: 0x61–0x66, A–F: 0x41–0x46
|
|
129
|
+
if (c >= 48 && c <= 57)
|
|
130
|
+
return c - 48;
|
|
131
|
+
if (c >= 97 && c <= 102)
|
|
132
|
+
return c - 87;
|
|
133
|
+
if (c >= 65 && c <= 70)
|
|
134
|
+
return c - 55;
|
|
135
|
+
return -1;
|
|
136
|
+
}
|
|
137
|
+
/** Decode two hex digit char codes into a byte (0–255). Returns -1 for invalid. */
|
|
138
|
+
function hexPair(c1, c2) {
|
|
139
|
+
const hi = hexVal(c1);
|
|
140
|
+
const lo = hexVal(c2);
|
|
141
|
+
if (hi < 0 || lo < 0)
|
|
142
|
+
return -1;
|
|
143
|
+
return (hi << 4) | lo;
|
|
144
|
+
}
|
|
145
|
+
/** Reusable static tuple to avoid allocation in parseHex. */
|
|
146
|
+
const RGB_OUT = [0, 0, 0];
|
|
147
|
+
/**
|
|
148
|
+
* Parse '#rrggbb' into [r, g, b].
|
|
149
|
+
*
|
|
150
|
+
* **WARNING: returns a static reusable tuple.** The returned array is
|
|
151
|
+
* shared across all calls. Callers MUST read or destructure the values
|
|
152
|
+
* before calling `parseHex` again. Holding a reference across another
|
|
153
|
+
* `parseHex` call will see clobbered values.
|
|
154
|
+
*
|
|
155
|
+
* Zero-alloc: no slice(), no parseInt(), no intermediate strings.
|
|
156
|
+
*
|
|
157
|
+
* @returns A static [r, g, b] tuple, or undefined for invalid input.
|
|
158
|
+
*/
|
|
159
|
+
export function parseHex(hex) {
|
|
160
|
+
if (hex.length !== 7 || hex.charCodeAt(0) !== 0x23)
|
|
161
|
+
return undefined;
|
|
162
|
+
const r = hexPair(hex.charCodeAt(1), hex.charCodeAt(2));
|
|
163
|
+
const g = hexPair(hex.charCodeAt(3), hex.charCodeAt(4));
|
|
164
|
+
const b = hexPair(hex.charCodeAt(5), hex.charCodeAt(6));
|
|
165
|
+
if (r < 0 || g < 0 || b < 0)
|
|
166
|
+
return undefined;
|
|
167
|
+
RGB_OUT[0] = r;
|
|
168
|
+
RGB_OUT[1] = g;
|
|
169
|
+
RGB_OUT[2] = b;
|
|
170
|
+
return RGB_OUT;
|
|
171
|
+
}
|
|
172
|
+
// Pre-computed lookup: byte value → 2-char hex string
|
|
173
|
+
const HEX_BYTE = new Array(256);
|
|
174
|
+
for (let i = 0; i < 256; i++) {
|
|
175
|
+
HEX_BYTE[i] = (i < 16 ? '0' : '') + i.toString(16);
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Parse '#rrggbb' and write R, G, B directly into a Uint8Array at the
|
|
179
|
+
* given offset. Returns true on success, false for invalid input.
|
|
180
|
+
* Zero-alloc: no intermediate strings or tuples.
|
|
181
|
+
*/
|
|
182
|
+
export function parseHexInto(hex, out, off) {
|
|
183
|
+
if (hex.length !== 7 || hex.charCodeAt(0) !== 0x23)
|
|
184
|
+
return false;
|
|
185
|
+
const r = hexPair(hex.charCodeAt(1), hex.charCodeAt(2));
|
|
186
|
+
const g = hexPair(hex.charCodeAt(3), hex.charCodeAt(4));
|
|
187
|
+
const b = hexPair(hex.charCodeAt(5), hex.charCodeAt(6));
|
|
188
|
+
if (r < 0 || g < 0 || b < 0)
|
|
189
|
+
return false;
|
|
190
|
+
out[off] = r;
|
|
191
|
+
out[off + 1] = g;
|
|
192
|
+
out[off + 2] = b;
|
|
193
|
+
return true;
|
|
194
|
+
}
|
|
195
|
+
/** Encode [r, g, b] to '#rrggbb'. Uses a lookup table — no toString(16) per call. */
|
|
196
|
+
export function toHex(r, g, b) {
|
|
197
|
+
return '#' + HEX_BYTE[r] + HEX_BYTE[g] + HEX_BYTE[b];
|
|
198
|
+
}
|
|
199
|
+
// --- Alpha encoding ---
|
|
200
|
+
/** Quantize opacity (0.0–1.0) into 6-bit value (0–63). */
|
|
201
|
+
export function encodeOpacity(opacity) {
|
|
202
|
+
if (opacity === undefined || opacity >= 1)
|
|
203
|
+
return 63;
|
|
204
|
+
if (opacity <= 0)
|
|
205
|
+
return 0;
|
|
206
|
+
return Math.round(opacity * 63);
|
|
207
|
+
}
|
|
208
|
+
/** Decode 6-bit opacity back to 0.0–1.0. */
|
|
209
|
+
export function decodeOpacity(quantized) {
|
|
210
|
+
if (quantized >= 63)
|
|
211
|
+
return 1;
|
|
212
|
+
if (quantized <= 0)
|
|
213
|
+
return 0;
|
|
214
|
+
return quantized / 63;
|
|
215
|
+
}
|
|
216
|
+
// --- Char encoding ---
|
|
217
|
+
/** Sentinel code for an empty-string char (double-width continuation cell). */
|
|
218
|
+
export const CHAR_EMPTY = 0;
|
|
219
|
+
/** Encode a character string into a uint16 value and optional side-table entry. */
|
|
220
|
+
export function encodeChar(char, sideTable) {
|
|
221
|
+
if (char.length === 0)
|
|
222
|
+
return CHAR_EMPTY;
|
|
223
|
+
// Fast path: single JS char — guaranteed single BMP codepoint
|
|
224
|
+
if (char.length === 1) {
|
|
225
|
+
const code = char.charCodeAt(0);
|
|
226
|
+
if (code < SIDE_TABLE_THRESHOLD)
|
|
227
|
+
return code;
|
|
228
|
+
}
|
|
229
|
+
// Slow path: multi-char string (astral plane, grapheme cluster, etc.)
|
|
230
|
+
let idx = sideTable.indexOf(char);
|
|
231
|
+
if (idx === -1) {
|
|
232
|
+
idx = sideTable.length;
|
|
233
|
+
sideTable.push(char);
|
|
234
|
+
}
|
|
235
|
+
return SIDE_TABLE_THRESHOLD + idx;
|
|
236
|
+
}
|
|
237
|
+
/** Decode a uint16 char value back to a string. */
|
|
238
|
+
export function decodeChar(code, sideTable) {
|
|
239
|
+
if (code === CHAR_EMPTY)
|
|
240
|
+
return '';
|
|
241
|
+
if (code >= SIDE_TABLE_THRESHOLD) {
|
|
242
|
+
const idx = code - SIDE_TABLE_THRESHOLD;
|
|
243
|
+
return sideTable[idx] ?? ' ';
|
|
244
|
+
}
|
|
245
|
+
return String.fromCodePoint(code);
|
|
246
|
+
}
|
|
247
|
+
// --- Bulk cell read/write ---
|
|
248
|
+
/** Write a Cell into the packed buffer at the given cell index. */
|
|
249
|
+
export function packCell(buf, cellIndex, charCode, fgR, fgG, fgB, fgSet, bgR, bgG, bgB, bgSet, flags, opacity) {
|
|
250
|
+
const off = cellIndex * CELL_STRIDE;
|
|
251
|
+
// char as uint16 LE
|
|
252
|
+
buf[off + OFF_CHAR] = charCode & 0xFF;
|
|
253
|
+
buf[off + OFF_CHAR + 1] = (charCode >> 8) & 0xFF;
|
|
254
|
+
// fg
|
|
255
|
+
buf[off + OFF_FG_R] = fgR;
|
|
256
|
+
buf[off + OFF_FG_G] = fgG;
|
|
257
|
+
buf[off + OFF_FG_B] = fgB;
|
|
258
|
+
// bg
|
|
259
|
+
buf[off + OFF_BG_R] = bgR;
|
|
260
|
+
buf[off + OFF_BG_G] = bgG;
|
|
261
|
+
buf[off + OFF_BG_B] = bgB;
|
|
262
|
+
// flags
|
|
263
|
+
buf[off + OFF_FLAGS] = flags;
|
|
264
|
+
// alpha byte: opacity in bits 0-5, fg/bg presence in bits 6-7
|
|
265
|
+
buf[off + OFF_ALPHA] = (opacity & OPACITY_MASK)
|
|
266
|
+
| (fgSet ? FLAG_FG_SET : 0)
|
|
267
|
+
| (bgSet ? FLAG_BG_SET : 0);
|
|
268
|
+
}
|
|
269
|
+
/** Compare two packed cells for equality. */
|
|
270
|
+
export function packedCellsEqual(buf, idxA, idxB) {
|
|
271
|
+
const offA = idxA * CELL_STRIDE;
|
|
272
|
+
const offB = idxB * CELL_STRIDE;
|
|
273
|
+
for (let i = 0; i < CELL_STRIDE; i++) {
|
|
274
|
+
if (buf[offA + i] !== buf[offB + i])
|
|
275
|
+
return false;
|
|
276
|
+
}
|
|
277
|
+
return true;
|
|
278
|
+
}
|
|
279
|
+
/** Compare two packed cells across different buffers. */
|
|
280
|
+
export function packedCellsEqualCross(bufA, idxA, bufB, idxB) {
|
|
281
|
+
const offA = idxA * CELL_STRIDE;
|
|
282
|
+
const offB = idxB * CELL_STRIDE;
|
|
283
|
+
for (let i = 0; i < CELL_STRIDE; i++) {
|
|
284
|
+
if (bufA[offA + i] !== bufB[offB + i])
|
|
285
|
+
return false;
|
|
286
|
+
}
|
|
287
|
+
return true;
|
|
288
|
+
}
|
|
289
|
+
/** Check if two packed cells have the same style (fg, bg, flags, alpha — ignoring char). */
|
|
290
|
+
export function packedStyleEqual(buf, idxA, idxB) {
|
|
291
|
+
const offA = idxA * CELL_STRIDE;
|
|
292
|
+
const offB = idxB * CELL_STRIDE;
|
|
293
|
+
// Compare from OFF_FG_R through end: fg RGB, bg RGB, flags (including
|
|
294
|
+
// modifiers and the empty bit), and alpha (opacity + fg/bg presence).
|
|
295
|
+
for (let i = OFF_FG_R; i < CELL_STRIDE; i++) {
|
|
296
|
+
if (buf[offA + i] !== buf[offB + i])
|
|
297
|
+
return false;
|
|
298
|
+
}
|
|
299
|
+
return true;
|
|
300
|
+
}
|
|
301
|
+
//# sourceMappingURL=packed-cell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packed-cell.js","sourceRoot":"","sources":["../../../src/core/render/packed-cell.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grapheme.d.ts","sourceRoot":"","sources":["../../../src/core/text/grapheme.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAyBH;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"grapheme.d.ts","sourceRoot":"","sources":["../../../src/core/text/grapheme.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAyBH;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAmD9C;AAMD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAOtD;AAMD;;;;;GAKG;AAEH,eAAO,MAAM,WAAW,QAAmB,CAAC;AAE5C;;;;;GAKG;AAEH,eAAO,MAAM,YAAY,QAAyC,CAAC;AAEnE;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI7C;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAuB7D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAUjD"}
|
|
@@ -88,9 +88,11 @@ export function isWideChar(cp) {
|
|
|
88
88
|
// Transport and Map Symbols
|
|
89
89
|
if (cp >= 0x1F680 && cp <= 0x1F6FF)
|
|
90
90
|
return true;
|
|
91
|
-
// Dingbats (
|
|
92
|
-
|
|
93
|
-
|
|
91
|
+
// Dingbats (U+2702–U+27B0) are NOT uniformly wide per Unicode
|
|
92
|
+
// East Asian Width. Most are Narrow text characters (✓ ✗ ✌).
|
|
93
|
+
// They only become wide with emoji presentation (U+FE0F), which
|
|
94
|
+
// is handled by graphemeClusterWidth checking for the variation
|
|
95
|
+
// selector in the grapheme cluster.
|
|
94
96
|
// Regional indicators (flags)
|
|
95
97
|
if (cp >= 0x1F1E0 && cp <= 0x1F1FF)
|
|
96
98
|
return true;
|
|
@@ -168,10 +170,16 @@ export function stripAnsi(str) {
|
|
|
168
170
|
*/
|
|
169
171
|
export function graphemeClusterWidth(grapheme) {
|
|
170
172
|
let maxWidth = 1;
|
|
173
|
+
let hasEmojiPresentation = false;
|
|
171
174
|
for (const ch of grapheme) {
|
|
172
175
|
const cp = ch.codePointAt(0);
|
|
173
|
-
//
|
|
174
|
-
if (cp ===
|
|
176
|
+
// Detect emoji presentation selector (U+FE0F) — forces base char to 2-wide
|
|
177
|
+
if (cp === 0xFE0F) {
|
|
178
|
+
hasEmojiPresentation = true;
|
|
179
|
+
continue;
|
|
180
|
+
}
|
|
181
|
+
// Skip zero-width joiners and other variation selectors
|
|
182
|
+
if (cp === 0x200D || (cp >= 0xFE00 && cp <= 0xFE0E) || (cp >= 0xE0100 && cp <= 0xE01EF)) {
|
|
175
183
|
continue;
|
|
176
184
|
}
|
|
177
185
|
if (isWideChar(cp)) {
|
|
@@ -179,6 +187,10 @@ export function graphemeClusterWidth(grapheme) {
|
|
|
179
187
|
break; // Can't be wider than 2
|
|
180
188
|
}
|
|
181
189
|
}
|
|
190
|
+
// Emoji presentation (U+FE0F) makes any base character 2-wide.
|
|
191
|
+
// This handles Dingbats (✂️ ✈️) and other text chars presented as emoji.
|
|
192
|
+
if (hasEmojiPresentation && maxWidth < 2)
|
|
193
|
+
maxWidth = 2;
|
|
182
194
|
return maxWidth;
|
|
183
195
|
}
|
|
184
196
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grapheme.js","sourceRoot":"","sources":["../../../src/core/text/grapheme.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,8EAA8E;AAC9E,6BAA6B;AAC7B,8EAA8E;AAE9E,kFAAkF;AAClF,IAAI,UAAsC,CAAC;AAE3C;;;;GAIG;AACH,SAAS,SAAS;IAChB,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,UAAU,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,8EAA8E;AAC9E,2BAA2B;AAC3B,8EAA8E;AAE9E;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,UAAU,CAAC,EAAU;IACnC,kBAAkB;IAClB,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM;QAAE,OAAO,IAAI,CAAC;IAC9C,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM;QAAE,OAAO,IAAI,CAAC;IAE9C,gCAAgC;IAChC,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM;QAAE,OAAO,IAAI,CAAC;IAE9C,kDAAkD;IAClD,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM;QAAE,OAAO,IAAI,CAAC;IAE9C,kBAAkB;IAClB,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM;QAAE,OAAO,IAAI,CAAC;IAE9C,yBAAyB;IACzB,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM;QAAE,OAAO,IAAI,CAAC;IAE9C,8EAA8E;IAC9E,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM;QAAE,OAAO,IAAI,CAAC;IAE9C,+BAA+B;IAC/B,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM;QAAE,OAAO,IAAI,CAAC;IAE9C,0BAA0B;IAC1B,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM;QAAE,OAAO,IAAI,CAAC;IAE9C,+BAA+B;IAC/B,IAAI,EAAE,IAAI,OAAO,IAAI,EAAE,IAAI,OAAO;QAAE,OAAO,IAAI,CAAC;IAEhD,0CAA0C;IAC1C,wCAAwC;IACxC,IAAI,EAAE,IAAI,OAAO,IAAI,EAAE,IAAI,OAAO;QAAE,OAAO,IAAI,CAAC;IAChD,uCAAuC;IACvC,IAAI,EAAE,IAAI,OAAO,IAAI,EAAE,IAAI,OAAO;QAAE,OAAO,IAAI,CAAC;IAChD,qCAAqC;IACrC,IAAI,EAAE,IAAI,OAAO,IAAI,EAAE,IAAI,OAAO;QAAE,OAAO,IAAI,CAAC;IAChD,YAAY;IACZ,IAAI,EAAE,IAAI,OAAO,IAAI,EAAE,IAAI,OAAO;QAAE,OAAO,IAAI,CAAC;IAChD,4BAA4B;IAC5B,IAAI,EAAE,IAAI,OAAO,IAAI,EAAE,IAAI,OAAO;QAAE,OAAO,IAAI,CAAC;IAChD,
|
|
1
|
+
{"version":3,"file":"grapheme.js","sourceRoot":"","sources":["../../../src/core/text/grapheme.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
import type { Theme, BaseStatusKey, TokenValue, TextModifier } from './tokens.js';
|
|
2
2
|
/**
|
|
3
3
|
* Shorthand helper to create a TokenValue with less boilerplate.
|
|
4
|
+
* Automatically pre-parses hex into numeric fgRGB for hot rendering paths.
|
|
4
5
|
* @param hex - Hex color string (e.g. `'#00ffff'`).
|
|
5
6
|
* @param modifiers - Optional text modifiers to attach.
|
|
6
|
-
* @returns TokenValue with the given hex and optional modifiers.
|
|
7
|
+
* @returns TokenValue with the given hex, fgRGB, and optional modifiers.
|
|
7
8
|
*/
|
|
8
9
|
export declare function tv(hex: string, modifiers?: TextModifier[]): TokenValue;
|
|
10
|
+
/**
|
|
11
|
+
* Populate fgRGB and bgRGB on an existing TokenValue if not already set.
|
|
12
|
+
* Used by theme resolution to ensure all tokens carry numeric RGB.
|
|
13
|
+
*
|
|
14
|
+
* **Mutates the token in place.** Callers should not pass frozen/shared tokens.
|
|
15
|
+
*/
|
|
16
|
+
export declare function populateTokenRGB(token: TokenValue): TokenValue;
|
|
9
17
|
/**
|
|
10
18
|
* CYAN_MAGENTA — the default theme.
|
|
11
19
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../../src/core/theme/presets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../../src/core/theme/presets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAO,MAAM,aAAa,CAAC;AAoBvF;;;;;;GAMG;AACH,wBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,YAAY,EAAE,GAAG,UAAU,CAMtE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAU9D;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,aAAa,CA4D7C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,aAAa,CA8DjD,CAAC;AAEF,6DAA6D;AAC7D,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAkHzC,CAAC"}
|
|
@@ -1,11 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse '#rrggbb' to [r, g, b] via charCode arithmetic.
|
|
3
|
+
*
|
|
4
|
+
* Validates hex digits: `d()` returns -1 for any non-hex character, and
|
|
5
|
+
* because -1 propagates through bitwise OR/shift, the final `< 0` guard
|
|
6
|
+
* catches invalid input even when only one nibble is bad.
|
|
7
|
+
*/
|
|
8
|
+
function hexToRGB(hex) {
|
|
9
|
+
if (hex.length !== 7 || hex.charCodeAt(0) !== 0x23)
|
|
10
|
+
return undefined;
|
|
11
|
+
const d = (c) => c >= 97 ? c - 87 : c >= 65 ? c - 55 : c >= 48 ? c - 48 : -1;
|
|
12
|
+
const r = (d(hex.charCodeAt(1)) << 4) | d(hex.charCodeAt(2));
|
|
13
|
+
const g = (d(hex.charCodeAt(3)) << 4) | d(hex.charCodeAt(4));
|
|
14
|
+
const b = (d(hex.charCodeAt(5)) << 4) | d(hex.charCodeAt(6));
|
|
15
|
+
if (r < 0 || g < 0 || b < 0)
|
|
16
|
+
return undefined;
|
|
17
|
+
return [r, g, b];
|
|
18
|
+
}
|
|
1
19
|
/**
|
|
2
20
|
* Shorthand helper to create a TokenValue with less boilerplate.
|
|
21
|
+
* Automatically pre-parses hex into numeric fgRGB for hot rendering paths.
|
|
3
22
|
* @param hex - Hex color string (e.g. `'#00ffff'`).
|
|
4
23
|
* @param modifiers - Optional text modifiers to attach.
|
|
5
|
-
* @returns TokenValue with the given hex and optional modifiers.
|
|
24
|
+
* @returns TokenValue with the given hex, fgRGB, and optional modifiers.
|
|
6
25
|
*/
|
|
7
26
|
export function tv(hex, modifiers) {
|
|
8
|
-
|
|
27
|
+
const fgRGB = hexToRGB(hex);
|
|
28
|
+
if (modifiers !== undefined) {
|
|
29
|
+
return fgRGB ? { hex, modifiers, fgRGB } : { hex, modifiers };
|
|
30
|
+
}
|
|
31
|
+
return fgRGB ? { hex, fgRGB } : { hex };
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Populate fgRGB and bgRGB on an existing TokenValue if not already set.
|
|
35
|
+
* Used by theme resolution to ensure all tokens carry numeric RGB.
|
|
36
|
+
*
|
|
37
|
+
* **Mutates the token in place.** Callers should not pass frozen/shared tokens.
|
|
38
|
+
*/
|
|
39
|
+
export function populateTokenRGB(token) {
|
|
40
|
+
if (!token.fgRGB) {
|
|
41
|
+
const rgb = hexToRGB(token.hex);
|
|
42
|
+
if (rgb)
|
|
43
|
+
token.fgRGB = rgb;
|
|
44
|
+
}
|
|
45
|
+
if (token.bg && !token.bgRGB) {
|
|
46
|
+
const rgb = hexToRGB(token.bg);
|
|
47
|
+
if (rgb)
|
|
48
|
+
token.bgRGB = rgb;
|
|
49
|
+
}
|
|
50
|
+
return token;
|
|
9
51
|
}
|
|
10
52
|
/**
|
|
11
53
|
* CYAN_MAGENTA — the default theme.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presets.js","sourceRoot":"","sources":["../../../src/core/theme/presets.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"presets.js","sourceRoot":"","sources":["../../../src/core/theme/presets.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../src/core/theme/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGpD,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../src/core/theme/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGpD,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAqB/D;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAGvD;AAED,8EAA8E;AAC9E,MAAM,WAAW,aAAa;IAC5B,mCAAmC;IACnC,KAAK,EAAE,KAAK,CAAC;IACb,yDAAyD;IACzD,OAAO,EAAE,OAAO,CAAC;IACjB,iEAAiE;IACjE,WAAW,EAAE,WAAW,CAAC;IACzB,8DAA8D;IAC9D,UAAU,EAAE,UAAU,CAAC;IAEvB;;;;OAIG;IACH,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,QAAQ,CAAC;IAEjC;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC;IAEpC;;;;OAIG;IACH,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAAC;CAChC;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,GAAE,WAAoB,GAAG,aAAa,CAyB/G;AAED,0DAA0D;AAC1D,MAAM,WAAW,oBAAoB;IACnC,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uFAAuF;IACvF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAChC,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,wCAAwC;IACxC,OAAO,EAAE,WAAW,CAAC;IACrB;;;;OAIG;IACH,WAAW,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;CAC7C;AAED,mFAAmF;AACnF,MAAM,WAAW,aAAa;IAC5B,4DAA4D;IAC5D,QAAQ,IAAI,aAAa,CAAC;IAC1B;;;OAGG;IACH,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC;IAC3C,kDAAkD;IAClD,gBAAgB,IAAI,IAAI,CAAC;CAC1B;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,aAAa,CAuDhF"}
|