@flyingrobots/bijou 0.6.0 → 0.9.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/audit-style.d.ts +25 -0
- package/dist/adapters/test/audit-style.d.ts.map +1 -0
- package/dist/adapters/test/audit-style.js +41 -0
- package/dist/adapters/test/audit-style.js.map +1 -0
- package/dist/adapters/test/index.d.ts +1 -0
- package/dist/adapters/test/index.d.ts.map +1 -1
- package/dist/adapters/test/index.js +1 -0
- package/dist/adapters/test/index.js.map +1 -1
- package/dist/core/components/dag-source.d.ts +4 -0
- package/dist/core/components/dag-source.d.ts.map +1 -1
- package/dist/core/components/dag-source.js +10 -0
- package/dist/core/components/dag-source.js.map +1 -1
- package/dist/core/components/dag.d.ts +2 -0
- package/dist/core/components/dag.d.ts.map +1 -1
- package/dist/core/components/dag.js +55 -10
- package/dist/core/components/dag.js.map +1 -1
- package/dist/core/components/enumerated-list.d.ts +10 -0
- package/dist/core/components/enumerated-list.d.ts.map +1 -0
- package/dist/core/components/enumerated-list.js +147 -0
- package/dist/core/components/enumerated-list.js.map +1 -0
- package/dist/core/components/hyperlink.d.ts +7 -0
- package/dist/core/components/hyperlink.d.ts.map +1 -0
- package/dist/core/components/hyperlink.js +38 -0
- package/dist/core/components/hyperlink.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/log.d.ts +9 -0
- package/dist/core/components/log.d.ts.map +1 -0
- package/dist/core/components/log.js +87 -0
- package/dist/core/components/log.js.map +1 -0
- package/dist/core/components/markdown.d.ts +29 -0
- package/dist/core/components/markdown.d.ts.map +1 -0
- package/dist/core/components/markdown.js +328 -0
- package/dist/core/components/markdown.js.map +1 -0
- package/dist/core/forms/filter.js +5 -2
- package/dist/core/forms/filter.js.map +1 -1
- package/dist/core/forms/multiselect.js +4 -1
- package/dist/core/forms/multiselect.js.map +1 -1
- package/dist/core/forms/select.js +4 -1
- package/dist/core/forms/select.js.map +1 -1
- package/dist/core/forms/textarea.js +5 -2
- package/dist/core/forms/textarea.js.map +1 -1
- package/dist/core/text/grapheme.d.ts +54 -0
- package/dist/core/text/grapheme.d.ts.map +1 -0
- package/dist/core/text/grapheme.js +160 -0
- package/dist/core/text/grapheme.js.map +1 -0
- package/dist/core/text/index.d.ts +2 -0
- package/dist/core/text/index.d.ts.map +1 -0
- package/dist/core/text/index.js +2 -0
- package/dist/core/text/index.js.map +1 -0
- package/dist/core/theme/color.d.ts +25 -0
- package/dist/core/theme/color.d.ts.map +1 -0
- package/dist/core/theme/color.js +143 -0
- package/dist/core/theme/color.js.map +1 -0
- package/dist/core/theme/downsample.d.ts +35 -0
- package/dist/core/theme/downsample.d.ts.map +1 -0
- package/dist/core/theme/downsample.js +141 -0
- package/dist/core/theme/downsample.js.map +1 -0
- package/dist/core/theme/index.d.ts +2 -0
- package/dist/core/theme/index.d.ts.map +1 -1
- package/dist/core/theme/index.js +4 -0
- package/dist/core/theme/index.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { getDefaultContext } from '../../context.js';
|
|
2
|
+
function resolveCtx(ctx) {
|
|
3
|
+
if (ctx)
|
|
4
|
+
return ctx;
|
|
5
|
+
try {
|
|
6
|
+
return getDefaultContext();
|
|
7
|
+
}
|
|
8
|
+
catch {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
function toRoman(n) {
|
|
13
|
+
const vals = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1];
|
|
14
|
+
const syms = ['m', 'cm', 'd', 'cd', 'c', 'xc', 'l', 'xl', 'x', 'ix', 'v', 'iv', 'i'];
|
|
15
|
+
let result = '';
|
|
16
|
+
for (let i = 0; i < vals.length; i++) {
|
|
17
|
+
while (n >= vals[i]) {
|
|
18
|
+
result += syms[i];
|
|
19
|
+
n -= vals[i];
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return result;
|
|
23
|
+
}
|
|
24
|
+
function toAlpha(n) {
|
|
25
|
+
let result = '';
|
|
26
|
+
while (n > 0) {
|
|
27
|
+
n--;
|
|
28
|
+
result = String.fromCharCode(97 + (n % 26)) + result;
|
|
29
|
+
n = Math.floor(n / 26);
|
|
30
|
+
}
|
|
31
|
+
return result;
|
|
32
|
+
}
|
|
33
|
+
function generatePrefix(style, index) {
|
|
34
|
+
switch (style) {
|
|
35
|
+
case 'arabic':
|
|
36
|
+
return `${index}.`;
|
|
37
|
+
case 'alpha':
|
|
38
|
+
return `${toAlpha(index)}.`;
|
|
39
|
+
case 'roman':
|
|
40
|
+
return `${toRoman(index)}.`;
|
|
41
|
+
case 'bullet':
|
|
42
|
+
return '\u2022';
|
|
43
|
+
case 'dash':
|
|
44
|
+
return '\u2013';
|
|
45
|
+
case 'none':
|
|
46
|
+
return '';
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
function generatePipePrefix(style, index) {
|
|
50
|
+
switch (style) {
|
|
51
|
+
case 'arabic':
|
|
52
|
+
return `${index}.`;
|
|
53
|
+
case 'alpha':
|
|
54
|
+
return `${toAlpha(index)}.`;
|
|
55
|
+
case 'roman':
|
|
56
|
+
return `${toRoman(index)}.`;
|
|
57
|
+
case 'bullet':
|
|
58
|
+
return '*';
|
|
59
|
+
case 'dash':
|
|
60
|
+
return '-';
|
|
61
|
+
case 'none':
|
|
62
|
+
return '';
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
function isOrderedStyle(style) {
|
|
66
|
+
return style === 'arabic' || style === 'alpha' || style === 'roman';
|
|
67
|
+
}
|
|
68
|
+
export function enumeratedList(items, options) {
|
|
69
|
+
if (items.length === 0)
|
|
70
|
+
return '';
|
|
71
|
+
const style = options?.style ?? 'arabic';
|
|
72
|
+
const indent = options?.indent ?? 2;
|
|
73
|
+
const start = options?.start ?? 1;
|
|
74
|
+
const ctx = resolveCtx(options?.ctx);
|
|
75
|
+
const mode = ctx?.mode;
|
|
76
|
+
const indentStr = ' '.repeat(indent);
|
|
77
|
+
// Accessible mode: simple numbering regardless of style
|
|
78
|
+
if (mode === 'accessible') {
|
|
79
|
+
return items
|
|
80
|
+
.map((item, i) => {
|
|
81
|
+
const num = start + i;
|
|
82
|
+
const prefix = `${num}.`;
|
|
83
|
+
const lines = item.split('\n');
|
|
84
|
+
const firstLine = `${indentStr}${prefix} ${lines[0]}`;
|
|
85
|
+
if (lines.length === 1)
|
|
86
|
+
return firstLine;
|
|
87
|
+
const contIndent = ' '.repeat(indent + prefix.length + 1);
|
|
88
|
+
return [firstLine, ...lines.slice(1).map(l => `${contIndent}${l}`)].join('\n');
|
|
89
|
+
})
|
|
90
|
+
.join('\n');
|
|
91
|
+
}
|
|
92
|
+
// Pipe mode: ASCII fallbacks
|
|
93
|
+
if (mode === 'pipe') {
|
|
94
|
+
const prefixes = items.map((_, i) => generatePipePrefix(style, start + i));
|
|
95
|
+
const maxPrefixLen = isOrderedStyle(style)
|
|
96
|
+
? Math.max(...prefixes.map(p => p.length))
|
|
97
|
+
: 0;
|
|
98
|
+
return items
|
|
99
|
+
.map((item, i) => {
|
|
100
|
+
const prefix = prefixes[i];
|
|
101
|
+
const lines = item.split('\n');
|
|
102
|
+
if (style === 'none') {
|
|
103
|
+
const firstLine = `${indentStr}${lines[0]}`;
|
|
104
|
+
if (lines.length === 1)
|
|
105
|
+
return firstLine;
|
|
106
|
+
const contIndent = indentStr;
|
|
107
|
+
return [firstLine, ...lines.slice(1).map(l => `${contIndent}${l}`)].join('\n');
|
|
108
|
+
}
|
|
109
|
+
const paddedPrefix = isOrderedStyle(style)
|
|
110
|
+
? prefix.padStart(maxPrefixLen)
|
|
111
|
+
: prefix;
|
|
112
|
+
const firstLine = `${indentStr}${paddedPrefix} ${lines[0]}`;
|
|
113
|
+
if (lines.length === 1)
|
|
114
|
+
return firstLine;
|
|
115
|
+
const contIndent = ' '.repeat(indent + paddedPrefix.length + 1);
|
|
116
|
+
return [firstLine, ...lines.slice(1).map(l => `${contIndent}${l}`)].join('\n');
|
|
117
|
+
})
|
|
118
|
+
.join('\n');
|
|
119
|
+
}
|
|
120
|
+
// Interactive / static mode (or no context): full rendering
|
|
121
|
+
const prefixes = items.map((_, i) => generatePrefix(style, start + i));
|
|
122
|
+
const maxPrefixLen = isOrderedStyle(style)
|
|
123
|
+
? Math.max(...prefixes.map(p => p.length))
|
|
124
|
+
: 0;
|
|
125
|
+
return items
|
|
126
|
+
.map((item, i) => {
|
|
127
|
+
const prefix = prefixes[i];
|
|
128
|
+
const lines = item.split('\n');
|
|
129
|
+
if (style === 'none') {
|
|
130
|
+
const firstLine = `${indentStr}${lines[0]}`;
|
|
131
|
+
if (lines.length === 1)
|
|
132
|
+
return firstLine;
|
|
133
|
+
const contIndent = indentStr;
|
|
134
|
+
return [firstLine, ...lines.slice(1).map(l => `${contIndent}${l}`)].join('\n');
|
|
135
|
+
}
|
|
136
|
+
const paddedPrefix = isOrderedStyle(style)
|
|
137
|
+
? prefix.padStart(maxPrefixLen)
|
|
138
|
+
: prefix;
|
|
139
|
+
const firstLine = `${indentStr}${paddedPrefix} ${lines[0]}`;
|
|
140
|
+
if (lines.length === 1)
|
|
141
|
+
return firstLine;
|
|
142
|
+
const contIndent = ' '.repeat(indent + paddedPrefix.length + 1);
|
|
143
|
+
return [firstLine, ...lines.slice(1).map(l => `${contIndent}${l}`)].join('\n');
|
|
144
|
+
})
|
|
145
|
+
.join('\n');
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=enumerated-list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enumerated-list.js","sourceRoot":"","sources":["../../../src/core/components/enumerated-list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { BijouContext } from '../../ports/context.js';
|
|
2
|
+
export interface HyperlinkOptions {
|
|
3
|
+
readonly fallback?: 'url' | 'text' | 'both';
|
|
4
|
+
readonly ctx?: BijouContext;
|
|
5
|
+
}
|
|
6
|
+
export declare function hyperlink(text: string, url: string, options?: HyperlinkOptions): string;
|
|
7
|
+
//# sourceMappingURL=hyperlink.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hyperlink.d.ts","sourceRoot":"","sources":["../../../src/core/components/hyperlink.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAG3D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IAC5C,QAAQ,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC;CAC7B;AAWD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAqBvF"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { getDefaultContext } from '../../context.js';
|
|
2
|
+
function resolveCtx(ctx) {
|
|
3
|
+
if (ctx)
|
|
4
|
+
return ctx;
|
|
5
|
+
try {
|
|
6
|
+
return getDefaultContext();
|
|
7
|
+
}
|
|
8
|
+
catch {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export function hyperlink(text, url, options) {
|
|
13
|
+
const ctx = resolveCtx(options?.ctx);
|
|
14
|
+
const fallback = options?.fallback ?? 'both';
|
|
15
|
+
// No context → use fallback format
|
|
16
|
+
if (!ctx)
|
|
17
|
+
return formatFallback(text, url, fallback);
|
|
18
|
+
const mode = ctx.mode;
|
|
19
|
+
// Interactive/static: OSC 8 clickable link
|
|
20
|
+
if (mode === 'interactive' || mode === 'static') {
|
|
21
|
+
return `\x1b]8;;${url}\x1b\\${text}\x1b]8;;\x1b\\`;
|
|
22
|
+
}
|
|
23
|
+
// Pipe: use fallback format
|
|
24
|
+
if (mode === 'pipe')
|
|
25
|
+
return formatFallback(text, url, fallback);
|
|
26
|
+
// Accessible: always text (url) for screen readers
|
|
27
|
+
if (mode === 'accessible')
|
|
28
|
+
return `${text} (${url})`;
|
|
29
|
+
return formatFallback(text, url, fallback);
|
|
30
|
+
}
|
|
31
|
+
function formatFallback(text, url, fallback) {
|
|
32
|
+
switch (fallback) {
|
|
33
|
+
case 'url': return url;
|
|
34
|
+
case 'text': return text;
|
|
35
|
+
case 'both': return `${text} (${url})`;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=hyperlink.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hyperlink.js","sourceRoot":"","sources":["../../../src/core/components/hyperlink.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAOrD,SAAS,UAAU,CAAC,GAAkB;IACpC,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,iBAAiB,EAAE,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,GAAW,EAAE,OAA0B;IAC7E,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,MAAM,CAAC;IAE7C,mCAAmC;IACnC,IAAI,CAAC,GAAG;QAAE,OAAO,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IAErD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IAEtB,2CAA2C;IAC3C,IAAI,IAAI,KAAK,aAAa,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,WAAW,GAAG,SAAS,IAAI,gBAAgB,CAAC;IACrD,CAAC;IAED,4BAA4B;IAC5B,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IAEhE,mDAAmD;IACnD,IAAI,IAAI,KAAK,YAAY;QAAE,OAAO,GAAG,IAAI,KAAK,GAAG,GAAG,CAAC;IAErD,OAAO,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,cAAc,CAAC,IAAY,EAAE,GAAW,EAAE,QAAiC;IAClF,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC;QACvB,KAAK,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC;QACzB,KAAK,MAAM,CAAC,CAAC,OAAO,GAAG,IAAI,KAAK,GAAG,GAAG,CAAC;IACzC,CAAC;AACH,CAAC"}
|
|
@@ -38,4 +38,12 @@ export { arraySource, isDagSource, isSlicedDagSource } from './dag-source.js';
|
|
|
38
38
|
export type { DagSource, SlicedDagSource, DagSliceOptions } from './dag-source.js';
|
|
39
39
|
export { dagStats } from './dag-stats.js';
|
|
40
40
|
export type { DagStats } from './dag-stats.js';
|
|
41
|
+
export { enumeratedList } from './enumerated-list.js';
|
|
42
|
+
export type { BulletStyle, EnumeratedListOptions } from './enumerated-list.js';
|
|
43
|
+
export { hyperlink } from './hyperlink.js';
|
|
44
|
+
export type { HyperlinkOptions } from './hyperlink.js';
|
|
45
|
+
export { log } from './log.js';
|
|
46
|
+
export type { LogLevel, LogOptions } from './log.js';
|
|
47
|
+
export { markdown } from './markdown.js';
|
|
48
|
+
export type { MarkdownOptions } from './markdown.js';
|
|
41
49
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC3D,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAC1F,YAAY,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEnI,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE5D,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE7D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3D,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEpF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE7D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEzE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEpE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEhE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACpD,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEhF,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC9E,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEnF,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/components/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,4 +18,8 @@ export { stepper } from './stepper.js';
|
|
|
18
18
|
export { dag, dagSlice, dagLayout } from './dag.js';
|
|
19
19
|
export { arraySource, isDagSource, isSlicedDagSource } from './dag-source.js';
|
|
20
20
|
export { dagStats } from './dag-stats.js';
|
|
21
|
+
export { enumeratedList } from './enumerated-list.js';
|
|
22
|
+
export { hyperlink } from './hyperlink.js';
|
|
23
|
+
export { log } from './log.js';
|
|
24
|
+
export { markdown } from './markdown.js';
|
|
21
25
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG3D,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAG1F,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG1C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAG3D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAG/B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGpD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAG9E,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG3D,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAG1F,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG1C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAG3D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAG/B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGpD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAG9E,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAG/B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { BijouContext } from '../../ports/context.js';
|
|
2
|
+
export type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'fatal';
|
|
3
|
+
export interface LogOptions {
|
|
4
|
+
readonly timestamp?: boolean;
|
|
5
|
+
readonly prefix?: boolean;
|
|
6
|
+
readonly ctx?: BijouContext;
|
|
7
|
+
}
|
|
8
|
+
export declare function log(level: LogLevel, message: string, options?: LogOptions): string;
|
|
9
|
+
//# sourceMappingURL=log.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../../src/core/components/log.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAI3D,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAErE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC;CAC7B;AA2CD,wBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,MAAM,CA6ClF"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { getDefaultContext } from '../../context.js';
|
|
2
|
+
import { badge } from './badge.js';
|
|
3
|
+
function resolveCtx(ctx) {
|
|
4
|
+
if (ctx)
|
|
5
|
+
return ctx;
|
|
6
|
+
try {
|
|
7
|
+
return getDefaultContext();
|
|
8
|
+
}
|
|
9
|
+
catch {
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
const LABELS = {
|
|
14
|
+
debug: 'DBG',
|
|
15
|
+
info: 'INF',
|
|
16
|
+
warn: 'WRN',
|
|
17
|
+
error: 'ERR',
|
|
18
|
+
fatal: 'FTL',
|
|
19
|
+
};
|
|
20
|
+
const BADGE_VARIANTS = {
|
|
21
|
+
debug: 'muted',
|
|
22
|
+
info: 'info',
|
|
23
|
+
warn: 'warning',
|
|
24
|
+
error: 'error',
|
|
25
|
+
fatal: 'error',
|
|
26
|
+
};
|
|
27
|
+
const ACCESSIBLE_LABELS = {
|
|
28
|
+
debug: 'DEBUG',
|
|
29
|
+
info: 'INFO',
|
|
30
|
+
warn: 'WARN',
|
|
31
|
+
error: 'ERROR',
|
|
32
|
+
fatal: 'FATAL',
|
|
33
|
+
};
|
|
34
|
+
function formatTimestamp() {
|
|
35
|
+
const d = new Date();
|
|
36
|
+
const hh = String(d.getHours()).padStart(2, '0');
|
|
37
|
+
const mm = String(d.getMinutes()).padStart(2, '0');
|
|
38
|
+
const ss = String(d.getSeconds()).padStart(2, '0');
|
|
39
|
+
return `${hh}:${mm}:${ss}`;
|
|
40
|
+
}
|
|
41
|
+
export function log(level, message, options) {
|
|
42
|
+
const ctx = resolveCtx(options?.ctx);
|
|
43
|
+
const showPrefix = options?.prefix !== false; // default true
|
|
44
|
+
const showTimestamp = options?.timestamp === true; // default false
|
|
45
|
+
const ts = showTimestamp ? formatTimestamp() : '';
|
|
46
|
+
if (!ctx) {
|
|
47
|
+
const parts = [];
|
|
48
|
+
if (ts)
|
|
49
|
+
parts.push(`[${ts}]`);
|
|
50
|
+
if (showPrefix)
|
|
51
|
+
parts.push(`[${LABELS[level]}]`);
|
|
52
|
+
parts.push(message);
|
|
53
|
+
return parts.join(' ');
|
|
54
|
+
}
|
|
55
|
+
const mode = ctx.mode;
|
|
56
|
+
if (mode === 'pipe') {
|
|
57
|
+
const parts = [];
|
|
58
|
+
if (ts)
|
|
59
|
+
parts.push(`[${ts}]`);
|
|
60
|
+
if (showPrefix)
|
|
61
|
+
parts.push(`[${LABELS[level]}]`);
|
|
62
|
+
parts.push(message);
|
|
63
|
+
return parts.join(' ');
|
|
64
|
+
}
|
|
65
|
+
if (mode === 'accessible') {
|
|
66
|
+
const parts = [];
|
|
67
|
+
if (ts)
|
|
68
|
+
parts.push(ts);
|
|
69
|
+
if (showPrefix)
|
|
70
|
+
parts.push(`${ACCESSIBLE_LABELS[level]}:`);
|
|
71
|
+
parts.push(message);
|
|
72
|
+
return parts.join(' ');
|
|
73
|
+
}
|
|
74
|
+
// Interactive/static: use badge + styled message
|
|
75
|
+
const parts = [];
|
|
76
|
+
if (ts) {
|
|
77
|
+
const tsStyled = ctx.style.styled(ctx.theme.theme.semantic.muted, ts);
|
|
78
|
+
parts.push(tsStyled);
|
|
79
|
+
}
|
|
80
|
+
if (showPrefix) {
|
|
81
|
+
const variant = BADGE_VARIANTS[level];
|
|
82
|
+
parts.push(badge(LABELS[level], { variant, ctx }));
|
|
83
|
+
}
|
|
84
|
+
parts.push(message);
|
|
85
|
+
return parts.join(' ');
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=log.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.js","sourceRoot":"","sources":["../../../src/core/components/log.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Terminal markdown renderer.
|
|
3
|
+
*
|
|
4
|
+
* Two-pass: block-level parse (line-by-line), then inline parse within each block.
|
|
5
|
+
* Reuses existing components: `separator()` for HRs, `hyperlink()` for links.
|
|
6
|
+
*
|
|
7
|
+
* Supported syntax: headings (# through ####), bold, italic, code spans,
|
|
8
|
+
* bullet lists, numbered lists, code blocks, horizontal rules, links,
|
|
9
|
+
* blockquotes.
|
|
10
|
+
*/
|
|
11
|
+
import type { BijouContext } from '../../ports/context.js';
|
|
12
|
+
export interface MarkdownOptions {
|
|
13
|
+
/** Wrap width. Defaults to `ctx.runtime.columns`. */
|
|
14
|
+
width?: number;
|
|
15
|
+
ctx?: BijouContext;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Render a markdown string for terminal display.
|
|
19
|
+
*
|
|
20
|
+
* Supports headings, bold, italic, code spans, bullet/numbered lists,
|
|
21
|
+
* code blocks, horizontal rules, links, and blockquotes.
|
|
22
|
+
*
|
|
23
|
+
* Mode degradation:
|
|
24
|
+
* - `interactive`: full styled output with colors and Unicode
|
|
25
|
+
* - `pipe`: plain text with minimal formatting
|
|
26
|
+
* - `accessible`: structured text with explicit labels
|
|
27
|
+
*/
|
|
28
|
+
export declare function markdown(source: string, options?: MarkdownOptions): string;
|
|
29
|
+
//# sourceMappingURL=markdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../../src/core/components/markdown.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAU3D,MAAM,WAAW,eAAe;IAC9B,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,YAAY,CAAC;CACpB;AAoVD;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,MAAM,CAQ1E"}
|