@flyingrobots/bijou 1.3.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/test/fixtures.d.ts +8 -0
- package/dist/adapters/test/fixtures.d.ts.map +1 -0
- package/dist/adapters/test/fixtures.js +18 -0
- package/dist/adapters/test/fixtures.js.map +1 -0
- package/dist/adapters/test/index.d.ts +4 -0
- package/dist/adapters/test/index.d.ts.map +1 -1
- package/dist/adapters/test/index.js +11 -2
- package/dist/adapters/test/index.js.map +1 -1
- package/dist/core/components/accordion.d.ts +2 -0
- package/dist/core/components/accordion.d.ts.map +1 -1
- package/dist/core/components/accordion.js +31 -27
- package/dist/core/components/accordion.js.map +1 -1
- package/dist/core/components/alert.d.ts +3 -0
- package/dist/core/components/alert.d.ts.map +1 -1
- package/dist/core/components/alert.js +18 -14
- 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 +15 -19
- package/dist/core/components/badge.js.map +1 -1
- package/dist/core/components/box.d.ts.map +1 -1
- package/dist/core/components/box.js +34 -26
- package/dist/core/components/box.js.map +1 -1
- package/dist/core/components/breadcrumb.d.ts +3 -0
- package/dist/core/components/breadcrumb.d.ts.map +1 -1
- package/dist/core/components/breadcrumb.js +28 -22
- package/dist/core/components/breadcrumb.js.map +1 -1
- package/dist/core/components/dag-render.d.ts.map +1 -1
- package/dist/core/components/dag-render.js +14 -3
- package/dist/core/components/dag-render.js.map +1 -1
- package/dist/core/components/dag.d.ts.map +1 -1
- package/dist/core/components/dag.js +9 -9
- package/dist/core/components/dag.js.map +1 -1
- package/dist/core/components/enumerated-list.d.ts.map +1 -1
- package/dist/core/components/enumerated-list.js +56 -66
- package/dist/core/components/enumerated-list.js.map +1 -1
- package/dist/core/components/hyperlink.d.ts.map +1 -1
- package/dist/core/components/hyperlink.js +6 -12
- package/dist/core/components/hyperlink.js.map +1 -1
- package/dist/core/components/kbd.d.ts +3 -0
- package/dist/core/components/kbd.d.ts.map +1 -1
- package/dist/core/components/kbd.js +13 -8
- package/dist/core/components/kbd.js.map +1 -1
- package/dist/core/components/log.d.ts.map +1 -1
- package/dist/core/components/log.js +35 -31
- package/dist/core/components/log.js.map +1 -1
- package/dist/core/components/markdown-parse.d.ts +1 -2
- package/dist/core/components/markdown-parse.d.ts.map +1 -1
- package/dist/core/components/markdown-parse.js +9 -11
- package/dist/core/components/markdown-parse.js.map +1 -1
- package/dist/core/components/markdown-render.d.ts.map +1 -1
- package/dist/core/components/markdown-render.js +34 -43
- package/dist/core/components/markdown-render.js.map +1 -1
- package/dist/core/components/markdown.d.ts.map +1 -1
- package/dist/core/components/markdown.js +5 -4
- package/dist/core/components/markdown.js.map +1 -1
- package/dist/core/components/paginator.d.ts.map +1 -1
- package/dist/core/components/paginator.js +22 -20
- package/dist/core/components/paginator.js.map +1 -1
- package/dist/core/components/progress.d.ts.map +1 -1
- package/dist/core/components/progress.js +29 -30
- package/dist/core/components/progress.js.map +1 -1
- package/dist/core/components/separator.d.ts.map +1 -1
- package/dist/core/components/separator.js +24 -20
- package/dist/core/components/separator.js.map +1 -1
- package/dist/core/components/skeleton.d.ts.map +1 -1
- package/dist/core/components/skeleton.js +12 -10
- package/dist/core/components/skeleton.js.map +1 -1
- package/dist/core/components/spinner.d.ts.map +1 -1
- package/dist/core/components/spinner.js +8 -11
- package/dist/core/components/spinner.js.map +1 -1
- package/dist/core/components/stepper.d.ts +3 -0
- package/dist/core/components/stepper.d.ts.map +1 -1
- package/dist/core/components/stepper.js +35 -30
- package/dist/core/components/stepper.js.map +1 -1
- package/dist/core/components/table.d.ts +2 -0
- package/dist/core/components/table.d.ts.map +1 -1
- package/dist/core/components/table.js +54 -45
- package/dist/core/components/table.js.map +1 -1
- package/dist/core/components/tabs.d.ts +3 -0
- package/dist/core/components/tabs.d.ts.map +1 -1
- package/dist/core/components/tabs.js +40 -33
- package/dist/core/components/tabs.js.map +1 -1
- package/dist/core/components/timeline.d.ts.map +1 -1
- package/dist/core/components/timeline.js +23 -23
- package/dist/core/components/timeline.js.map +1 -1
- package/dist/core/components/tree.d.ts.map +1 -1
- package/dist/core/components/tree.js +10 -10
- package/dist/core/components/tree.js.map +1 -1
- package/dist/core/detect/tty.d.ts.map +1 -1
- package/dist/core/detect/tty.js +12 -6
- package/dist/core/detect/tty.js.map +1 -1
- package/dist/core/forms/confirm.d.ts.map +1 -1
- package/dist/core/forms/confirm.js +12 -14
- package/dist/core/forms/confirm.js.map +1 -1
- package/dist/core/forms/filter-interactive.d.ts.map +1 -1
- package/dist/core/forms/filter-interactive.js +33 -15
- package/dist/core/forms/filter-interactive.js.map +1 -1
- package/dist/core/forms/form-utils.js +2 -2
- package/dist/core/forms/form-utils.js.map +1 -1
- package/dist/core/forms/input.d.ts.map +1 -1
- package/dist/core/forms/input.js +17 -14
- package/dist/core/forms/input.js.map +1 -1
- package/dist/core/forms/multiselect.d.ts.map +1 -1
- package/dist/core/forms/multiselect.js +41 -12
- package/dist/core/forms/multiselect.js.map +1 -1
- package/dist/core/forms/select.d.ts +3 -0
- package/dist/core/forms/select.d.ts.map +1 -1
- package/dist/core/forms/select.js +20 -8
- package/dist/core/forms/select.js.map +1 -1
- package/dist/core/forms/textarea-editor.d.ts.map +1 -1
- package/dist/core/forms/textarea-editor.js +10 -6
- package/dist/core/forms/textarea-editor.js.map +1 -1
- package/dist/core/mode-render.d.ts +37 -0
- package/dist/core/mode-render.d.ts.map +1 -0
- package/dist/core/mode-render.js +42 -0
- package/dist/core/mode-render.js.map +1 -0
- package/dist/core/theme/accessors.d.ts +33 -0
- package/dist/core/theme/accessors.d.ts.map +1 -0
- package/dist/core/theme/accessors.js +21 -0
- package/dist/core/theme/accessors.js.map +1 -0
- package/dist/core/theme/index.d.ts +1 -0
- package/dist/core/theme/index.d.ts.map +1 -1
- package/dist/core/theme/index.js +2 -0
- package/dist/core/theme/index.js.map +1 -1
- package/dist/core/theme/resolve.d.ts.map +1 -1
- package/dist/core/theme/resolve.js +3 -0
- package/dist/core/theme/resolve.js.map +1 -1
- package/dist/core/theme/tokens.d.ts +16 -2
- package/dist/core/theme/tokens.d.ts.map +1 -1
- package/dist/factory.d.ts.map +1 -1
- package/dist/factory.js +9 -1
- package/dist/factory.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/ports/context.d.ts +13 -0
- package/dist/ports/context.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -6,6 +6,9 @@ import { formatFormTitle, renderNumberedOptions, terminalRenderer, formDispatch,
|
|
|
6
6
|
* Uses arrow-key navigation in interactive TTY mode, or a numbered list
|
|
7
7
|
* fallback for pipe and accessible modes.
|
|
8
8
|
*
|
|
9
|
+
* If `defaultValue` does not match any option (via {@link Object.is}), the
|
|
10
|
+
* first option is used as the cancellation fallback.
|
|
11
|
+
*
|
|
9
12
|
* @typeParam T - Type of each option's value.
|
|
10
13
|
* @param options - Select field configuration.
|
|
11
14
|
* @returns The value of the selected option.
|
|
@@ -50,7 +53,6 @@ async function numberedSelect(options, ctx) {
|
|
|
50
53
|
*/
|
|
51
54
|
async function interactiveSelect(options, ctx) {
|
|
52
55
|
const noColor = ctx.theme.noColor;
|
|
53
|
-
const t = ctx.theme;
|
|
54
56
|
const styledFn = createStyledFn(ctx);
|
|
55
57
|
const boldFn = createBoldFn(ctx);
|
|
56
58
|
const term = terminalRenderer(ctx);
|
|
@@ -60,6 +62,7 @@ async function interactiveSelect(options, ctx) {
|
|
|
60
62
|
: 7;
|
|
61
63
|
let cursor = 0;
|
|
62
64
|
let scrollOffset = 0;
|
|
65
|
+
/** Keep the scroll offset so the cursor stays within the visible window. */
|
|
63
66
|
function clampScroll() {
|
|
64
67
|
if (cursor < scrollOffset) {
|
|
65
68
|
scrollOffset = cursor;
|
|
@@ -69,12 +72,15 @@ async function interactiveSelect(options, ctx) {
|
|
|
69
72
|
}
|
|
70
73
|
scrollOffset = Math.max(0, Math.min(scrollOffset, Math.max(0, options.options.length - maxVisible)));
|
|
71
74
|
}
|
|
75
|
+
/** Return the slice of options currently visible on screen. */
|
|
72
76
|
function visibleOptions() {
|
|
73
77
|
return options.options.slice(scrollOffset, scrollOffset + maxVisible);
|
|
74
78
|
}
|
|
79
|
+
/** Calculate the total terminal lines occupied by the current render. */
|
|
75
80
|
function renderLineCount() {
|
|
76
81
|
return 1 + Math.min(options.options.length, maxVisible);
|
|
77
82
|
}
|
|
83
|
+
/** Write the select UI (title, option list) to the terminal. */
|
|
78
84
|
function render() {
|
|
79
85
|
const label = formatFormTitle(options.title, ctx);
|
|
80
86
|
term.hideCursor();
|
|
@@ -85,25 +91,27 @@ async function interactiveSelect(options, ctx) {
|
|
|
85
91
|
const opt = visible[i];
|
|
86
92
|
const isCurrent = globalIndex === cursor;
|
|
87
93
|
const prefix = isCurrent ? '\u276f' : ' ';
|
|
88
|
-
const desc = opt.description ? styledFn(
|
|
94
|
+
const desc = opt.description ? styledFn(ctx.semantic('muted'), ` \u2014 ${opt.description}`) : '';
|
|
89
95
|
if (isCurrent && !noColor) {
|
|
90
|
-
ctx.io.write(`\x1b[K ${styledFn(
|
|
96
|
+
ctx.io.write(`\x1b[K ${styledFn(ctx.semantic('info'), prefix)} ${boldFn(opt.label)}${desc}\n`);
|
|
91
97
|
}
|
|
92
98
|
else {
|
|
93
99
|
ctx.io.write(`\x1b[K ${prefix} ${opt.label}${desc}\n`);
|
|
94
100
|
}
|
|
95
101
|
}
|
|
96
102
|
}
|
|
103
|
+
/** Move the cursor up to overwrite the previous render. */
|
|
97
104
|
function clearRender() {
|
|
98
105
|
const totalLines = renderLineCount();
|
|
99
106
|
term.moveUp(totalLines);
|
|
100
107
|
}
|
|
101
|
-
|
|
108
|
+
/** Erase the full UI and print the final selection summary line. */
|
|
109
|
+
function cleanup(selectedLabel) {
|
|
102
110
|
clearRender();
|
|
103
111
|
const totalLines = renderLineCount();
|
|
104
112
|
term.clearBlock(totalLines);
|
|
105
|
-
const
|
|
106
|
-
const label = formatFormTitle(options.title, ctx) + ' ' + styledFn(
|
|
113
|
+
const displayLabel = selectedLabel ?? options.options[cursor].label;
|
|
114
|
+
const label = formatFormTitle(options.title, ctx) + ' ' + styledFn(ctx.semantic('info'), displayLabel);
|
|
107
115
|
ctx.io.write(`\x1b[K${label}\n`);
|
|
108
116
|
term.showCursor();
|
|
109
117
|
}
|
|
@@ -131,9 +139,13 @@ async function interactiveSelect(options, ctx) {
|
|
|
131
139
|
// Note: bare \x1b may false-trigger on slow connections where escape
|
|
132
140
|
// sequences arrive as separate bytes. Timer-based disambiguation is a
|
|
133
141
|
// separate future improvement.
|
|
142
|
+
const fallbackValue = options.defaultValue ?? options.options[0].value;
|
|
143
|
+
// Object.is uses reference equality — object-typed values must be the
|
|
144
|
+
// exact same reference to match, not merely structurally equivalent.
|
|
145
|
+
const fallbackOption = options.options.find((opt) => Object.is(opt.value, fallbackValue));
|
|
134
146
|
handle.dispose();
|
|
135
|
-
cleanup();
|
|
136
|
-
resolve(
|
|
147
|
+
cleanup(fallbackOption?.label);
|
|
148
|
+
resolve(fallbackValue);
|
|
137
149
|
}
|
|
138
150
|
});
|
|
139
151
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../../src/core/forms/select.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAYvI
|
|
1
|
+
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../../src/core/forms/select.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textarea-editor.d.ts","sourceRoot":"","sources":["../../../src/core/forms/textarea-editor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAG3D;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,YAAY,CAAC,MAAM,CAAC;IAC3D,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,GAAG,CAAC,EAAE,YAAY,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"textarea-editor.d.ts","sourceRoot":"","sources":["../../../src/core/forms/textarea-editor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAG3D;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,YAAY,CAAC,MAAM,CAAC;IAC3D,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,GAAG,CAAC,EAAE,YAAY,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CA0MtG"}
|
|
@@ -18,7 +18,6 @@ import { formatFormTitle, terminalRenderer, createStyledFn } from './form-utils.
|
|
|
18
18
|
* @returns The entered text (newline-joined), or the default value on cancel.
|
|
19
19
|
*/
|
|
20
20
|
export async function interactiveTextarea(options, ctx) {
|
|
21
|
-
const t = ctx.theme;
|
|
22
21
|
const styledFn = createStyledFn(ctx);
|
|
23
22
|
const height = options.height ?? 6;
|
|
24
23
|
const renderWidth = options.width ?? 80;
|
|
@@ -29,18 +28,21 @@ export async function interactiveTextarea(options, ctx) {
|
|
|
29
28
|
let cursorCol = 0;
|
|
30
29
|
let scrollY = 0;
|
|
31
30
|
let totalLength = 0; // running counter for lines.join('\n').length
|
|
31
|
+
/** Return the slice of lines currently visible in the editor viewport. */
|
|
32
32
|
function visibleLines() {
|
|
33
33
|
return lines.slice(scrollY, scrollY + height);
|
|
34
34
|
}
|
|
35
|
+
/** Adjust the vertical scroll so the cursor row is within the viewport. */
|
|
35
36
|
function ensureCursorVisible() {
|
|
36
37
|
if (cursorRow < scrollY)
|
|
37
38
|
scrollY = cursorRow;
|
|
38
39
|
if (cursorRow >= scrollY + height)
|
|
39
40
|
scrollY = cursorRow - height + 1;
|
|
40
41
|
}
|
|
42
|
+
/** Write the editor UI (title, visible lines, status bar) to the terminal. */
|
|
41
43
|
function render() {
|
|
42
44
|
const label = formatFormTitle(options.title, ctx);
|
|
43
|
-
const hint = styledFn(
|
|
45
|
+
const hint = styledFn(ctx.semantic('muted'), ' (Ctrl+D to submit, Ctrl+C/Esc to cancel)');
|
|
44
46
|
term.writeLine(`${label}${hint}`);
|
|
45
47
|
const vis = visibleLines();
|
|
46
48
|
const numWidth = showLineNumbers ? String(lines.length).length : 0;
|
|
@@ -51,10 +53,10 @@ export async function interactiveTextarea(options, ctx) {
|
|
|
51
53
|
const rawLine = vis[i] ?? '';
|
|
52
54
|
const line = rawLine.length > contentWidth ? rawLine.slice(0, contentWidth) : rawLine;
|
|
53
55
|
const prefix = showLineNumbers
|
|
54
|
-
? styledFn(
|
|
56
|
+
? styledFn(ctx.semantic('muted'), `${String(lineIdx + 1).padStart(numWidth)} │ `)
|
|
55
57
|
: ' ';
|
|
56
58
|
if (lineIdx === 0 && options.placeholder && lines.length === 1 && lines[0] === '') {
|
|
57
|
-
ctx.io.write(`\x1b[K${prefix}${styledFn(
|
|
59
|
+
ctx.io.write(`\x1b[K${prefix}${styledFn(ctx.semantic('muted'), options.placeholder)}\n`);
|
|
58
60
|
}
|
|
59
61
|
else {
|
|
60
62
|
ctx.io.write(`\x1b[K${prefix}${line}\n`);
|
|
@@ -63,12 +65,14 @@ export async function interactiveTextarea(options, ctx) {
|
|
|
63
65
|
// Status line
|
|
64
66
|
const pos = `Ln ${cursorRow + 1}, Col ${cursorCol + 1}`;
|
|
65
67
|
const lenInfo = options.maxLength != null ? ` | ${totalLength}/${options.maxLength}` : '';
|
|
66
|
-
ctx.io.write(`\x1b[K${styledFn(
|
|
68
|
+
ctx.io.write(`\x1b[K${styledFn(ctx.semantic('muted'), pos + lenInfo)}\n`);
|
|
67
69
|
}
|
|
70
|
+
/** Move the cursor up to overwrite the previous render. */
|
|
68
71
|
function clearRender() {
|
|
69
72
|
const totalLines = height + 2; // header + visible lines + status
|
|
70
73
|
term.moveUp(totalLines);
|
|
71
74
|
}
|
|
75
|
+
/** Erase the editor UI and print a one-line summary of the result. */
|
|
72
76
|
function cleanup(value, cancelled) {
|
|
73
77
|
clearRender();
|
|
74
78
|
const totalLines = height + 2;
|
|
@@ -78,7 +82,7 @@ export async function interactiveTextarea(options, ctx) {
|
|
|
78
82
|
: (value
|
|
79
83
|
? (value.includes('\n') ? `${value.split('\n').length} lines` : value)
|
|
80
84
|
: '(empty)');
|
|
81
|
-
const label = formatFormTitle(options.title, ctx) + ' ' + styledFn(
|
|
85
|
+
const label = formatFormTitle(options.title, ctx) + ' ' + styledFn(ctx.semantic('info'), summary);
|
|
82
86
|
ctx.io.write(`\x1b[K${label}\n`);
|
|
83
87
|
term.showCursor();
|
|
84
88
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textarea-editor.js","sourceRoot":"","sources":["../../../src/core/forms/textarea-editor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAoBpF;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAAwB,EAAE,GAAiB;IACnF,MAAM,
|
|
1
|
+
{"version":3,"file":"textarea-editor.js","sourceRoot":"","sources":["../../../src/core/forms/textarea-editor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { OutputMode } from './detect/tty.js';
|
|
2
|
+
/**
|
|
3
|
+
* A renderer function for a specific output mode.
|
|
4
|
+
*
|
|
5
|
+
* @template I - Input options type.
|
|
6
|
+
* @template O - Output type (usually `string`).
|
|
7
|
+
*/
|
|
8
|
+
export type ModeHandler<I, O> = (options: I) => O;
|
|
9
|
+
/**
|
|
10
|
+
* A map of renderers for each supported output mode.
|
|
11
|
+
*
|
|
12
|
+
* @template I - Input options type.
|
|
13
|
+
* @template O - Output type.
|
|
14
|
+
*/
|
|
15
|
+
export type ModeMap<I, O> = {
|
|
16
|
+
readonly [K in OutputMode]?: ModeHandler<I, O>;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Dispatch rendering to a mode-specific handler.
|
|
20
|
+
*
|
|
21
|
+
* If no handler is defined for the requested mode, it falls back to a
|
|
22
|
+
* sibling in the same visual group first: visual modes (`interactive`,
|
|
23
|
+
* `static`) fall back to each other, then to `pipe` → `accessible`;
|
|
24
|
+
* non-visual modes (`pipe`, `accessible`) fall back to each other, then
|
|
25
|
+
* to `interactive` → `static`. Finally falls back to the first available
|
|
26
|
+
* handler in the map.
|
|
27
|
+
*
|
|
28
|
+
* @template I - Input options type.
|
|
29
|
+
* @template O - Output type.
|
|
30
|
+
* @param mode - The current output mode to dispatch for.
|
|
31
|
+
* @param map - Map of mode-specific renderer handlers.
|
|
32
|
+
* @param options - Options to pass to the selected handler.
|
|
33
|
+
* @returns The output from the selected handler.
|
|
34
|
+
* @throws {Error} If the map is empty.
|
|
35
|
+
*/
|
|
36
|
+
export declare function renderByMode<I, O>(mode: OutputMode, map: ModeMap<I, O>, options: I): O;
|
|
37
|
+
//# sourceMappingURL=mode-render.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mode-render.d.ts","sourceRoot":"","sources":["../../src/core/mode-render.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD;;;;;GAKG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;AAElD;;;;;GAKG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI;IAC1B,QAAQ,EAAE,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC;CAC/C,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,EAC/B,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAClB,OAAO,EAAE,CAAC,GACT,CAAC,CAuBH"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dispatch rendering to a mode-specific handler.
|
|
3
|
+
*
|
|
4
|
+
* If no handler is defined for the requested mode, it falls back to a
|
|
5
|
+
* sibling in the same visual group first: visual modes (`interactive`,
|
|
6
|
+
* `static`) fall back to each other, then to `pipe` → `accessible`;
|
|
7
|
+
* non-visual modes (`pipe`, `accessible`) fall back to each other, then
|
|
8
|
+
* to `interactive` → `static`. Finally falls back to the first available
|
|
9
|
+
* handler in the map.
|
|
10
|
+
*
|
|
11
|
+
* @template I - Input options type.
|
|
12
|
+
* @template O - Output type.
|
|
13
|
+
* @param mode - The current output mode to dispatch for.
|
|
14
|
+
* @param map - Map of mode-specific renderer handlers.
|
|
15
|
+
* @param options - Options to pass to the selected handler.
|
|
16
|
+
* @returns The output from the selected handler.
|
|
17
|
+
* @throws {Error} If the map is empty.
|
|
18
|
+
*/
|
|
19
|
+
export function renderByMode(mode, map, options) {
|
|
20
|
+
// 1. Direct match
|
|
21
|
+
const direct = map[mode];
|
|
22
|
+
if (direct)
|
|
23
|
+
return direct(options);
|
|
24
|
+
// 2. Fallback chain
|
|
25
|
+
// - visual modes (interactive, static) fall back to each other first.
|
|
26
|
+
// - fallback modes (pipe, accessible) fall back to each other first.
|
|
27
|
+
const visual = mode === 'interactive' || mode === 'static';
|
|
28
|
+
const fallbacks = visual
|
|
29
|
+
? ['interactive', 'static', 'pipe', 'accessible']
|
|
30
|
+
: ['pipe', 'accessible', 'interactive', 'static'];
|
|
31
|
+
for (const f of fallbacks) {
|
|
32
|
+
const handler = map[f];
|
|
33
|
+
if (handler)
|
|
34
|
+
return handler(options);
|
|
35
|
+
}
|
|
36
|
+
// 3. First available
|
|
37
|
+
const first = Object.values(map)[0];
|
|
38
|
+
if (first)
|
|
39
|
+
return first(options);
|
|
40
|
+
throw new Error(`renderByMode: no handlers defined in map for mode "${mode}"`);
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=mode-render.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mode-render.js","sourceRoot":"","sources":["../../src/core/mode-render.ts"],"names":[],"mappings":"AAoBA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,YAAY,CAC1B,IAAgB,EAChB,GAAkB,EAClB,OAAU;IAEV,kBAAkB;IAClB,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IACzB,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;IAEnC,oBAAoB;IACpB,sEAAsE;IACtE,qEAAqE;IACrE,MAAM,MAAM,GAAG,IAAI,KAAK,aAAa,IAAI,IAAI,KAAK,QAAQ,CAAC;IAC3D,MAAM,SAAS,GAAiB,MAAM;QACpC,CAAC,CAAC,CAAC,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC;QACjD,CAAC,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;IAEpD,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,qBAAqB;IACrB,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,IAAI,KAAK;QAAE,OAAQ,KAA2B,CAAC,OAAO,CAAC,CAAC;IAExD,MAAM,IAAI,KAAK,CAAC,sDAAsD,IAAI,GAAG,CAAC,CAAC;AACjF,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { Theme, TokenValue, GradientStop } from './tokens.js';
|
|
2
|
+
import type { ResolvedTheme } from './resolve.js';
|
|
3
|
+
/**
|
|
4
|
+
* Theme accessor functions that look up color tokens from a resolved theme.
|
|
5
|
+
*
|
|
6
|
+
* Returned by {@link createThemeAccessors} and spread into {@link BijouContext}.
|
|
7
|
+
*/
|
|
8
|
+
export interface ThemeAccessors {
|
|
9
|
+
/** Look up a semantic color token. */
|
|
10
|
+
semantic(key: keyof Theme['semantic']): TokenValue;
|
|
11
|
+
/** Look up a border color token. */
|
|
12
|
+
border(key: keyof Theme['border']): TokenValue;
|
|
13
|
+
/** Look up a surface color token. */
|
|
14
|
+
surface(key: keyof Theme['surface']): TokenValue;
|
|
15
|
+
/** Look up a status color token with fallback to `'muted'`. */
|
|
16
|
+
status(key: string): TokenValue;
|
|
17
|
+
/** Look up a UI element color token with fallback to `semantic.primary`. */
|
|
18
|
+
ui(key: string): TokenValue;
|
|
19
|
+
/** Look up a gradient by key, returning its color stops (or `[]` if unknown). */
|
|
20
|
+
gradient(key: string): GradientStop[];
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Create theme accessor functions from a resolved theme.
|
|
24
|
+
*
|
|
25
|
+
* Centralises the six accessor lambdas (with fallback logic for `status`,
|
|
26
|
+
* `ui`, and `gradient`) so they are defined in one place rather than
|
|
27
|
+
* duplicated across the production factory and test adapter.
|
|
28
|
+
*
|
|
29
|
+
* @param theme - A fully-resolved theme to build accessors for.
|
|
30
|
+
* @returns An object whose properties can be spread into a {@link BijouContext}.
|
|
31
|
+
*/
|
|
32
|
+
export declare function createThemeAccessors(theme: ResolvedTheme): ThemeAccessors;
|
|
33
|
+
//# sourceMappingURL=accessors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accessors.d.ts","sourceRoot":"","sources":["../../../src/core/theme/accessors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,sCAAsC;IACtC,QAAQ,CAAC,GAAG,EAAE,MAAM,KAAK,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;IACnD,oCAAoC;IACpC,MAAM,CAAC,GAAG,EAAE,MAAM,KAAK,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC;IAC/C,qCAAqC;IACrC,OAAO,CAAC,GAAG,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC;IACjD,+DAA+D;IAC/D,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC;IAChC,4EAA4E;IAC5E,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC;IAC5B,iFAAiF;IACjF,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,EAAE,CAAC;CACvC;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,aAAa,GAAG,cAAc,CASzE"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Create theme accessor functions from a resolved theme.
|
|
3
|
+
*
|
|
4
|
+
* Centralises the six accessor lambdas (with fallback logic for `status`,
|
|
5
|
+
* `ui`, and `gradient`) so they are defined in one place rather than
|
|
6
|
+
* duplicated across the production factory and test adapter.
|
|
7
|
+
*
|
|
8
|
+
* @param theme - A fully-resolved theme to build accessors for.
|
|
9
|
+
* @returns An object whose properties can be spread into a {@link BijouContext}.
|
|
10
|
+
*/
|
|
11
|
+
export function createThemeAccessors(theme) {
|
|
12
|
+
return {
|
|
13
|
+
semantic: (key) => theme.theme.semantic[key],
|
|
14
|
+
border: (key) => theme.theme.border[key],
|
|
15
|
+
surface: (key) => theme.theme.surface[key],
|
|
16
|
+
status: (key) => theme.theme.status[key] ?? theme.theme.status['muted'],
|
|
17
|
+
ui: (key) => theme.theme.ui[key] ?? theme.theme.semantic.primary,
|
|
18
|
+
gradient: (key) => theme.theme.gradient[key] ?? [],
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=accessors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accessors.js","sourceRoot":"","sources":["../../../src/core/theme/accessors.ts"],"names":[],"mappings":"AAuBA;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAoB;IACvD,OAAO;QACL,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC5C,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;QACxC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAC1C,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAE,KAAK,CAAC,KAAK,CAAC,MAAqC,CAAC,GAAG,CAAC,IAAK,KAAK,CAAC,KAAK,CAAC,MAAqC,CAAC,OAAO,CAAE;QACxI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAE,KAAK,CAAC,KAAK,CAAC,EAAiC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO;QAChG,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAE,KAAK,CAAC,KAAK,CAAC,QAA2C,CAAC,GAAG,CAAC,IAAI,EAAE;KACvF,CAAC;AACJ,CAAC"}
|
|
@@ -16,5 +16,6 @@ export type { GradientTextOptions } from './gradient.js';
|
|
|
16
16
|
export { fromDTCG, toDTCG } from './dtcg.js';
|
|
17
17
|
export type { DTCGDocument, DTCGToken, DTCGGroup } from './dtcg.js';
|
|
18
18
|
export { rgbToAnsi256, nearestAnsi256, rgbToAnsi16, ansi256ToAnsi16, type ColorLevel, } from './downsample.js';
|
|
19
|
+
export { createThemeAccessors, type ThemeAccessors } from './accessors.js';
|
|
19
20
|
export { hexToRgb, rgbToHex, lighten, darken, mix, complementary, saturate, desaturate, } from './color.js';
|
|
20
21
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/theme/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,YAAY,EACV,GAAG,EACH,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,aAAa,EACb,SAAS,EACT,eAAe,EACf,KAAK,GACN,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAG3E,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGnD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,EACL,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAIvF,YAAY,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGzD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC7C,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGpE,OAAO,EACL,YAAY,EACZ,cAAc,EACd,WAAW,EACX,eAAe,EACf,KAAK,UAAU,GAChB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,MAAM,EACN,GAAG,EACH,aAAa,EACb,QAAQ,EACR,UAAU,GACX,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/theme/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,YAAY,EACV,GAAG,EACH,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,aAAa,EACb,SAAS,EACT,eAAe,EACf,KAAK,GACN,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAG3E,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGnD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,EACL,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAIvF,YAAY,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGzD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC7C,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGpE,OAAO,EACL,YAAY,EACZ,cAAc,EACd,WAAW,EACX,eAAe,EACf,KAAK,UAAU,GAChB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,oBAAoB,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAG3E,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,MAAM,EACN,GAAG,EACH,aAAa,EACb,QAAQ,EACR,UAAU,GACX,MAAM,YAAY,CAAC"}
|
package/dist/core/theme/index.js
CHANGED
|
@@ -19,6 +19,8 @@ export { isNoColor, getTheme, resolveTheme, _resetThemeForTesting, createThemeRe
|
|
|
19
19
|
export { fromDTCG, toDTCG } from './dtcg.js';
|
|
20
20
|
// Color downsampling
|
|
21
21
|
export { rgbToAnsi256, nearestAnsi256, rgbToAnsi16, ansi256ToAnsi16, } from './downsample.js';
|
|
22
|
+
// Theme accessors
|
|
23
|
+
export { createThemeAccessors } from './accessors.js';
|
|
22
24
|
// Color manipulation
|
|
23
25
|
export { hexToRgb, rgbToHex, lighten, darken, mix, complementary, saturate, desaturate, } from './color.js';
|
|
24
26
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/theme/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAeH,UAAU;AACV,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAE3E,8BAA8B;AAC9B,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEnD,kBAAkB;AAClB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,WAAW;AACX,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEpD,WAAW;AACX,OAAO,EACL,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,GACf,MAAM,cAAc,CAAC;AAOtB,eAAe;AACf,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAG7C,qBAAqB;AACrB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,WAAW,EACX,eAAe,GAEhB,MAAM,iBAAiB,CAAC;AAEzB,qBAAqB;AACrB,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,MAAM,EACN,GAAG,EACH,aAAa,EACb,QAAQ,EACR,UAAU,GACX,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/theme/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAeH,UAAU;AACV,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAE3E,8BAA8B;AAC9B,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEnD,kBAAkB;AAClB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,WAAW;AACX,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEpD,WAAW;AACX,OAAO,EACL,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,GACf,MAAM,cAAc,CAAC;AAOtB,eAAe;AACf,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAG7C,qBAAqB;AACrB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,WAAW,EACX,eAAe,GAEhB,MAAM,iBAAiB,CAAC;AAEzB,kBAAkB;AAClB,OAAO,EAAE,oBAAoB,EAAuB,MAAM,gBAAgB,CAAC;AAE3E,qBAAqB;AACrB,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,MAAM,EACN,GAAG,EACH,aAAa,EACb,QAAQ,EACR,UAAU,GACX,MAAM,YAAY,CAAC"}
|
|
@@ -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;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAIpD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAGxD;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;IAEzB;;;;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,CAqB/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,8EAA8E;IAC9E,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB;;;;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,GAAE,oBAAyB,GAAG,aAAa,
|
|
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;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAIpD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAGxD;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;IAEzB;;;;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,CAqB/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,8EAA8E;IAC9E,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB;;;;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,GAAE,oBAAyB,GAAG,aAAa,CAyDrF;AAKD;;;GAGG;AACH,wBAAgB,QAAQ,IAAI,aAAa,CAExC;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,aAAa,CAEzD;AAED,sEAAsE;AACtE,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C"}
|
|
@@ -55,6 +55,7 @@ export function createThemeResolver(options = {}) {
|
|
|
55
55
|
warningPort?.writeError?.(`${message}\n`);
|
|
56
56
|
};
|
|
57
57
|
let cached = null;
|
|
58
|
+
/** Return the lazily-cached resolved theme for the current environment. */
|
|
58
59
|
function getTheme() {
|
|
59
60
|
if (cached !== null)
|
|
60
61
|
return cached;
|
|
@@ -71,6 +72,7 @@ export function createThemeResolver(options = {}) {
|
|
|
71
72
|
}
|
|
72
73
|
return cached;
|
|
73
74
|
}
|
|
75
|
+
/** Resolve a theme by name (or env/fallback), bypassing the cache. */
|
|
74
76
|
function resolveTheme(name) {
|
|
75
77
|
const noColor = isNoColor(runtime);
|
|
76
78
|
const colorScheme = detectColorScheme(runtime);
|
|
@@ -82,6 +84,7 @@ export function createThemeResolver(options = {}) {
|
|
|
82
84
|
}
|
|
83
85
|
return createResolved(theme, noColor, colorScheme);
|
|
84
86
|
}
|
|
87
|
+
/** Clear the cached theme so the next `getTheme()` re-resolves. */
|
|
85
88
|
function _resetForTesting() {
|
|
86
89
|
cached = null;
|
|
87
90
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../src/core/theme/resolve.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../src/core/theme/resolve.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,8 +13,22 @@ export interface GradientStop {
|
|
|
13
13
|
/** RGB color at this stop. */
|
|
14
14
|
color: RGB;
|
|
15
15
|
}
|
|
16
|
-
/**
|
|
17
|
-
|
|
16
|
+
/**
|
|
17
|
+
* Supported text style modifiers that can be applied alongside a color.
|
|
18
|
+
*
|
|
19
|
+
* - `'bold'` — bold/bright weight
|
|
20
|
+
* - `'dim'` — faint/reduced intensity
|
|
21
|
+
* - `'strikethrough'` — horizontal line through text
|
|
22
|
+
* - `'inverse'` — swap foreground and background colors
|
|
23
|
+
* - `'underline'` — standard single underline (SGR 4)
|
|
24
|
+
* - `'curly-underline'` — wavy/curly underline (SGR 4:3, kitty/iTerm2/WezTerm/Windows Terminal)
|
|
25
|
+
* - `'dotted-underline'` — dotted underline (SGR 4:4)
|
|
26
|
+
* - `'dashed-underline'` — dashed underline (SGR 4:5)
|
|
27
|
+
*
|
|
28
|
+
* Underline variants gracefully degrade to standard underline in terminals
|
|
29
|
+
* that don't support SGR sub-parameters.
|
|
30
|
+
*/
|
|
31
|
+
export type TextModifier = 'bold' | 'dim' | 'strikethrough' | 'inverse' | 'underline' | 'curly-underline' | 'dotted-underline' | 'dashed-underline';
|
|
18
32
|
/** A theme token value: a hex color with optional text modifiers. */
|
|
19
33
|
export interface TokenValue {
|
|
20
34
|
/** Foreground color as a `#rrggbb` hex string. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../src/core/theme/tokens.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,6EAA6E;AAC7E,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE3C,iFAAiF;AACjF,MAAM,WAAW,YAAY;IAC3B,mEAAmE;IACnE,GAAG,EAAE,MAAM,CAAC;IACZ,8BAA8B;IAC9B,KAAK,EAAE,GAAG,CAAC;CACZ;AAED
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../src/core/theme/tokens.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,6EAA6E;AAC7E,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE3C,iFAAiF;AACjF,MAAM,WAAW,YAAY;IAC3B,mEAAmE;IACnE,GAAG,EAAE,MAAM,CAAC;IACZ,8BAA8B;IAC9B,KAAK,EAAE,GAAG,CAAC;CACZ;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,KAAK,GAAG,eAAe,GAAG,SAAS,GACnE,WAAW,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,kBAAkB,CAAC;AAE9E,qEAAqE;AACrE,MAAM,WAAW,UAAU;IACzB,kDAAkD;IAClD,GAAG,EAAE,MAAM,CAAC;IACZ,2DAA2D;IAC3D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,kEAAkE;IAClE,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;CAC5B;AAED,qGAAqG;AACrG,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAE1C,kDAAkD;AAClD,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEtG,gCAAgC;AAChC,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,aAAa,GAAG,aAAa,GAAG,eAAe,GAC9E,MAAM,GAAG,aAAa,GAAG,YAAY,CAAC;AAE1C,8BAA8B;AAC9B,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,UAAU,CAAC;AAEnD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,KAAK,CACpB,CAAC,SAAS,MAAM,GAAG,aAAa,EAChC,CAAC,SAAS,MAAM,GAAG,SAAS,EAC5B,CAAC,SAAS,MAAM,GAAG,eAAe;IAElC,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IAEb,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAE9B,6DAA6D;IAC7D,QAAQ,EAAE;QACR,OAAO,EAAE,UAAU,CAAC;QACpB,KAAK,EAAE,UAAU,CAAC;QAClB,OAAO,EAAE,UAAU,CAAC;QACpB,IAAI,EAAE,UAAU,CAAC;QACjB,MAAM,EAAE,UAAU,CAAC;QACnB,KAAK,EAAE,UAAU,CAAC;QAClB,OAAO,EAAE,UAAU,CAAC;KACrB,CAAC;IAEF,mEAAmE;IACnE,QAAQ,EAAE,MAAM,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;IAEpC,0DAA0D;IAC1D,MAAM,EAAE;QACN,OAAO,EAAE,UAAU,CAAC;QACpB,SAAS,EAAE,UAAU,CAAC;QACtB,OAAO,EAAE,UAAU,CAAC;QACpB,OAAO,EAAE,UAAU,CAAC;QACpB,KAAK,EAAE,UAAU,CAAC;QAClB,KAAK,EAAE,UAAU,CAAC;KACnB,CAAC;IAEF,+DAA+D;IAC/D,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAE1B,mEAAmE;IACnE,OAAO,EAAE;QACP,kCAAkC;QAClC,OAAO,EAAE,UAAU,CAAC;QACpB,oCAAoC;QACpC,SAAS,EAAE,UAAU,CAAC;QACtB,2CAA2C;QAC3C,QAAQ,EAAE,UAAU,CAAC;QACrB,kDAAkD;QAClD,OAAO,EAAE,UAAU,CAAC;QACpB,wCAAwC;QACxC,KAAK,EAAE,UAAU,CAAC;KACnB,CAAC;CACH"}
|
package/dist/factory.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AASpD,uCAAuC;AACvC,MAAM,WAAW,kBAAkB;IACjC,mCAAmC;IACnC,OAAO,EAAE,WAAW,CAAC;IACrB,8CAA8C;IAC9C,EAAE,EAAE,MAAM,CAAC;IACX,+CAA+C;IAC/C,KAAK,EAAE,SAAS,CAAC;IACjB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAChC,4FAA4F;IAC5F,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,YAAY,CAoCrE"}
|
package/dist/factory.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { createResolved } from './core/theme/resolve.js';
|
|
2
|
+
import { createThemeAccessors } from './core/theme/accessors.js';
|
|
2
3
|
import { CYAN_MAGENTA } from './core/theme/presets.js';
|
|
3
4
|
import { PRESETS } from './core/theme/presets.js';
|
|
4
5
|
import { fromDTCG } from './core/theme/dtcg.js';
|
|
@@ -39,6 +40,13 @@ export function createBijou(options) {
|
|
|
39
40
|
}
|
|
40
41
|
const theme = createResolved(themeObj, noColor);
|
|
41
42
|
const mode = detectOutputMode(runtime);
|
|
42
|
-
return {
|
|
43
|
+
return {
|
|
44
|
+
theme,
|
|
45
|
+
mode,
|
|
46
|
+
runtime,
|
|
47
|
+
io,
|
|
48
|
+
style,
|
|
49
|
+
...createThemeAccessors(theme),
|
|
50
|
+
};
|
|
43
51
|
}
|
|
44
52
|
//# sourceMappingURL=factory.js.map
|
package/dist/factory.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAsB,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAqB,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAkBxD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CAAC,OAA2B;IACrD,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IACvC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,aAAa,CAAC;IAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC;IAC3C,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,IAAI,YAAY,CAAC;IAE/C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,SAAS,CAAC;IACtD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEvC,IAAI,QAAQ,GAAU,QAAQ,CAAC;IAE/B,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBACxC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAiB,CAAC;gBAChD,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,oCAAoC;YACtC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAkB,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC/D,MAAM,IAAI,GAAe,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAEnD,OAAO,
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAsB,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAqB,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAkBxD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CAAC,OAA2B;IACrD,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IACvC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,aAAa,CAAC;IAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC;IAC3C,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,IAAI,YAAY,CAAC;IAE/C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,SAAS,CAAC;IACtD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEvC,IAAI,QAAQ,GAAU,QAAQ,CAAC;IAE/B,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBACxC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAiB,CAAC;gBAChD,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,oCAAoC;YACtC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAkB,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC/D,MAAM,IAAI,GAAe,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAEnD,OAAO;QACL,KAAK;QACL,IAAI;QACJ,OAAO;QACP,EAAE;QACF,KAAK;QACL,GAAG,oBAAoB,CAAC,KAAK,CAAC;KAC/B,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,9 +7,10 @@
|
|
|
7
7
|
export type { RuntimePort, WritePort, QueryPort, InteractivePort, FilePort, IOPort, RawInputHandle, TimerHandle, StylePort, BijouContext, } from './ports/index.js';
|
|
8
8
|
export { getDefaultContext, setDefaultContext, _resetDefaultContextForTesting, } from './context.js';
|
|
9
9
|
export { resolveCtx, resolveSafeCtx } from './core/resolve-ctx.js';
|
|
10
|
+
export { renderByMode, type ModeHandler, type ModeMap, } from './core/mode-render.js';
|
|
10
11
|
export { shouldApplyBg, makeBgFill } from './core/bg-fill.js';
|
|
11
12
|
export { createBijou, type CreateBijouOptions } from './factory.js';
|
|
12
|
-
export { type RGB, type GradientStop, type TextModifier, type TokenValue, type InkColor, type BaseStatusKey, type BaseUiKey, type BaseGradientKey, type Theme, CYAN_MAGENTA, TEAL_ORANGE_PINK, PRESETS, tv, styled, styledStatus, extendTheme, lerp3, gradientText, type GradientTextOptions, isNoColor, getTheme, resolveTheme, _resetThemeForTesting, createThemeResolver, createResolved, type ResolvedTheme, type ThemeResolver, type ThemeResolverOptions, fromDTCG, toDTCG, type DTCGDocument, type DTCGToken, type DTCGGroup, rgbToAnsi256, nearestAnsi256, rgbToAnsi16, ansi256ToAnsi16, type ColorLevel, hexToRgb, rgbToHex, lighten, darken, mix, complementary, saturate, desaturate, } from './core/theme/index.js';
|
|
13
|
+
export { type RGB, type GradientStop, type TextModifier, type TokenValue, type InkColor, type BaseStatusKey, type BaseUiKey, type BaseGradientKey, type Theme, CYAN_MAGENTA, TEAL_ORANGE_PINK, PRESETS, tv, styled, styledStatus, extendTheme, lerp3, gradientText, type GradientTextOptions, isNoColor, getTheme, resolveTheme, _resetThemeForTesting, createThemeResolver, createResolved, type ResolvedTheme, type ThemeResolver, type ThemeResolverOptions, fromDTCG, toDTCG, type DTCGDocument, type DTCGToken, type DTCGGroup, rgbToAnsi256, nearestAnsi256, rgbToAnsi16, ansi256ToAnsi16, type ColorLevel, createThemeAccessors, type ThemeAccessors, hexToRgb, rgbToHex, lighten, darken, mix, complementary, saturate, desaturate, } from './core/theme/index.js';
|
|
13
14
|
export { isWideChar, segmentGraphemes, graphemeClusterWidth, graphemeWidth, clipToWidth, } from './core/text/index.js';
|
|
14
15
|
export { detectOutputMode, detectColorScheme, type OutputMode, type ColorScheme, } from './core/detect/index.js';
|
|
15
16
|
export { spinnerFrame, createSpinner, type SpinnerOptions, type SpinnerController, progressBar, createProgressBar, createAnimatedProgressBar, type ProgressBarOptions, type LiveProgressBarOptions, type AnimatedProgressBarOptions, type ProgressBarController, table, type TableColumn, type TableOptions, box, headerBox, type BoxOptions, type HeaderBoxOptions, selectLogoSize, loadRandomLogo, type LogoSize, type LogoResult, type LogoConstraints, type LogoOptions, separator, type SeparatorOptions, badge, type BadgeVariant, type BadgeOptions, alert, type AlertVariant, type AlertOptions, skeleton, type SkeletonOptions, kbd, type KbdOptions, tree, type TreeNode, type TreeOptions, accordion, type AccordionSection, type AccordionOptions, timeline, type TimelineEvent, type TimelineOptions, tabs, type TabItem, type TabsOptions, breadcrumb, type BreadcrumbOptions, paginator, type PaginatorOptions, stepper, type StepperStep, type StepperOptions, dag, dagSlice, dagLayout, type DagNode, type DagOptions, type DagNodePosition, type DagLayout, arraySource, isDagSource, isSlicedDagSource, type DagSource, type SlicedDagSource, type DagSliceOptions, dagStats, type DagStats, enumeratedList, type BulletStyle, type EnumeratedListOptions, hyperlink, type HyperlinkOptions, log, type LogLevel, type LogOptions, markdown, type MarkdownOptions, } from './core/components/index.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
export { getDefaultContext, setDefaultContext, _resetDefaultContextForTesting, } from './context.js';
|
|
9
9
|
// Context resolution helpers
|
|
10
10
|
export { resolveCtx, resolveSafeCtx } from './core/resolve-ctx.js';
|
|
11
|
+
// Mode rendering strategy
|
|
12
|
+
export { renderByMode, } from './core/mode-render.js';
|
|
11
13
|
// Background fill utilities
|
|
12
14
|
export { shouldApplyBg, makeBgFill } from './core/bg-fill.js';
|
|
13
15
|
// Factory
|
|
@@ -28,6 +30,8 @@ isNoColor, getTheme, resolveTheme, _resetThemeForTesting, createThemeResolver, c
|
|
|
28
30
|
fromDTCG, toDTCG,
|
|
29
31
|
// Color downsampling
|
|
30
32
|
rgbToAnsi256, nearestAnsi256, rgbToAnsi16, ansi256ToAnsi16,
|
|
33
|
+
// Theme accessors
|
|
34
|
+
createThemeAccessors,
|
|
31
35
|
// Color manipulation
|
|
32
36
|
hexToRgb, rgbToHex, lighten, darken, mix, complementary, saturate, desaturate, } from './core/theme/index.js';
|
|
33
37
|
// Text / grapheme utilities
|