@mdxui/terminal 2.0.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/README.md +571 -0
- package/dist/ansi-css-Sk5mWtdK.d.ts +119 -0
- package/dist/ansi-css-V6JIHGsM.d.ts +119 -0
- package/dist/ansi-css-_3eSEU9d.d.ts +119 -0
- package/dist/chunk-3EFDH7PK.js +5235 -0
- package/dist/chunk-3RG5ZIWI.js +10 -0
- package/dist/chunk-3X5IR6WE.js +884 -0
- package/dist/chunk-4FV5ZDCE.js +5236 -0
- package/dist/chunk-4OVMSF2J.js +243 -0
- package/dist/chunk-63FEETIS.js +4048 -0
- package/dist/chunk-B43KP7XJ.js +884 -0
- package/dist/chunk-BMTJXWUV.js +655 -0
- package/dist/chunk-C3SVH4N7.js +882 -0
- package/dist/chunk-EVWR7Y47.js +874 -0
- package/dist/chunk-F6A5VWUC.js +1285 -0
- package/dist/chunk-FD7KW7GE.js +882 -0
- package/dist/chunk-GBQ6UD6I.js +655 -0
- package/dist/chunk-GMDD3M6U.js +5227 -0
- package/dist/chunk-JBHRXOXM.js +1058 -0
- package/dist/chunk-JFOO3EYO.js +1182 -0
- package/dist/chunk-JQ5H3WXL.js +1291 -0
- package/dist/chunk-JQD5NASE.js +234 -0
- package/dist/chunk-KRHJP5R7.js +592 -0
- package/dist/chunk-KWF6WVJE.js +962 -0
- package/dist/chunk-LHYQVN3H.js +1038 -0
- package/dist/chunk-M3TLQLGC.js +1032 -0
- package/dist/chunk-MVW4Q5OP.js +240 -0
- package/dist/chunk-NXCZSWLU.js +1294 -0
- package/dist/chunk-O25TNRO6.js +607 -0
- package/dist/chunk-PNECDA2I.js +884 -0
- package/dist/chunk-QIHWRLJR.js +962 -0
- package/dist/chunk-QW5YMQ7K.js +882 -0
- package/dist/chunk-R5U7XKVJ.js +16 -0
- package/dist/chunk-RP2MVQLR.js +962 -0
- package/dist/chunk-TP6RXGXA.js +1087 -0
- package/dist/chunk-TQQSTITZ.js +655 -0
- package/dist/chunk-X24GWXQV.js +1281 -0
- package/dist/components/index.d.ts +802 -0
- package/dist/components/index.js +149 -0
- package/dist/data/index.d.ts +2554 -0
- package/dist/data/index.js +51 -0
- package/dist/forms/index.d.ts +1596 -0
- package/dist/forms/index.js +464 -0
- package/dist/index-CQRFZntR.d.ts +867 -0
- package/dist/index.d.ts +579 -0
- package/dist/index.js +786 -0
- package/dist/interactive-D0JkWosD.d.ts +217 -0
- package/dist/keyboard/index.d.ts +2 -0
- package/dist/keyboard/index.js +43 -0
- package/dist/renderers/index.d.ts +546 -0
- package/dist/renderers/index.js +2157 -0
- package/dist/storybook/index.d.ts +396 -0
- package/dist/storybook/index.js +641 -0
- package/dist/theme/index.d.ts +1339 -0
- package/dist/theme/index.js +123 -0
- package/dist/types-Bxu5PAgA.d.ts +710 -0
- package/dist/types-CIlop5Ji.d.ts +701 -0
- package/dist/types-Ca8p_p5X.d.ts +710 -0
- package/package.json +90 -0
- package/src/__tests__/components/data/card.test.ts +458 -0
- package/src/__tests__/components/data/list.test.ts +473 -0
- package/src/__tests__/components/data/metrics.test.ts +541 -0
- package/src/__tests__/components/data/table.test.ts +448 -0
- package/src/__tests__/components/input/field.test.ts +555 -0
- package/src/__tests__/components/input/form.test.ts +870 -0
- package/src/__tests__/components/input/search.test.ts +1238 -0
- package/src/__tests__/components/input/select.test.ts +658 -0
- package/src/__tests__/components/navigation/breadcrumb.test.ts +923 -0
- package/src/__tests__/components/navigation/command-palette.test.ts +1095 -0
- package/src/__tests__/components/navigation/sidebar.test.ts +1018 -0
- package/src/__tests__/components/navigation/tabs.test.ts +995 -0
- package/src/__tests__/components.test.tsx +1197 -0
- package/src/__tests__/core/compiler.test.ts +986 -0
- package/src/__tests__/core/parser.test.ts +785 -0
- package/src/__tests__/core/tier-switcher.test.ts +1103 -0
- package/src/__tests__/core/types.test.ts +1398 -0
- package/src/__tests__/data/collections.test.ts +1337 -0
- package/src/__tests__/data/db.test.ts +1265 -0
- package/src/__tests__/data/reactive.test.ts +1010 -0
- package/src/__tests__/data/sync.test.ts +1614 -0
- package/src/__tests__/errors.test.ts +660 -0
- package/src/__tests__/forms/integration.test.ts +444 -0
- package/src/__tests__/integration.test.ts +905 -0
- package/src/__tests__/keyboard.test.ts +1791 -0
- package/src/__tests__/renderer.test.ts +489 -0
- package/src/__tests__/renderers/ansi-css.test.ts +948 -0
- package/src/__tests__/renderers/ansi.test.ts +1366 -0
- package/src/__tests__/renderers/ascii.test.ts +1360 -0
- package/src/__tests__/renderers/interactive.test.ts +2353 -0
- package/src/__tests__/renderers/markdown.test.ts +1483 -0
- package/src/__tests__/renderers/text.test.ts +1369 -0
- package/src/__tests__/renderers/unicode.test.ts +1307 -0
- package/src/__tests__/theme.test.ts +639 -0
- package/src/__tests__/utils/assertions.ts +685 -0
- package/src/__tests__/utils/index.ts +115 -0
- package/src/__tests__/utils/test-renderer.ts +381 -0
- package/src/__tests__/utils/utils.test.ts +560 -0
- package/src/components/containers/card.ts +56 -0
- package/src/components/containers/dialog.ts +53 -0
- package/src/components/containers/index.ts +9 -0
- package/src/components/containers/panel.ts +59 -0
- package/src/components/feedback/badge.ts +40 -0
- package/src/components/feedback/index.ts +8 -0
- package/src/components/feedback/spinner.ts +23 -0
- package/src/components/helpers.ts +81 -0
- package/src/components/index.ts +153 -0
- package/src/components/layout/breadcrumb.ts +31 -0
- package/src/components/layout/index.ts +10 -0
- package/src/components/layout/list.ts +29 -0
- package/src/components/layout/sidebar.ts +79 -0
- package/src/components/layout/table.ts +62 -0
- package/src/components/primitives/box.ts +95 -0
- package/src/components/primitives/button.ts +54 -0
- package/src/components/primitives/index.ts +11 -0
- package/src/components/primitives/input.ts +88 -0
- package/src/components/primitives/select.ts +97 -0
- package/src/components/primitives/text.ts +60 -0
- package/src/components/render.ts +155 -0
- package/src/components/templates/app.ts +43 -0
- package/src/components/templates/index.ts +8 -0
- package/src/components/templates/site.ts +54 -0
- package/src/components/types.ts +777 -0
- package/src/core/compiler.ts +718 -0
- package/src/core/parser.ts +127 -0
- package/src/core/tier-switcher.ts +607 -0
- package/src/core/types.ts +672 -0
- package/src/data/collection.ts +316 -0
- package/src/data/collections.ts +50 -0
- package/src/data/context.tsx +174 -0
- package/src/data/db.ts +127 -0
- package/src/data/hooks.ts +532 -0
- package/src/data/index.ts +138 -0
- package/src/data/reactive.ts +1225 -0
- package/src/data/saas-collections.ts +375 -0
- package/src/data/sync.ts +1213 -0
- package/src/data/types.ts +660 -0
- package/src/forms/converters.ts +512 -0
- package/src/forms/index.ts +133 -0
- package/src/forms/schemas.ts +403 -0
- package/src/forms/types.ts +476 -0
- package/src/index.ts +542 -0
- package/src/keyboard/focus.ts +748 -0
- package/src/keyboard/index.ts +96 -0
- package/src/keyboard/integration.ts +371 -0
- package/src/keyboard/manager.ts +377 -0
- package/src/keyboard/presets.ts +90 -0
- package/src/renderers/ansi-css.ts +576 -0
- package/src/renderers/ansi.ts +802 -0
- package/src/renderers/ascii.ts +680 -0
- package/src/renderers/breadcrumb.ts +480 -0
- package/src/renderers/command-palette.ts +802 -0
- package/src/renderers/components/field.ts +210 -0
- package/src/renderers/components/form.ts +327 -0
- package/src/renderers/components/index.ts +21 -0
- package/src/renderers/components/search.ts +449 -0
- package/src/renderers/components/select.ts +222 -0
- package/src/renderers/index.ts +101 -0
- package/src/renderers/interactive/component-handlers.ts +622 -0
- package/src/renderers/interactive/cursor-manager.ts +147 -0
- package/src/renderers/interactive/focus-manager.ts +279 -0
- package/src/renderers/interactive/index.ts +661 -0
- package/src/renderers/interactive/input-handler.ts +164 -0
- package/src/renderers/interactive/keyboard-handler.ts +212 -0
- package/src/renderers/interactive/mouse-handler.ts +167 -0
- package/src/renderers/interactive/state-manager.ts +109 -0
- package/src/renderers/interactive/types.ts +338 -0
- package/src/renderers/interactive-string.ts +299 -0
- package/src/renderers/interactive.ts +59 -0
- package/src/renderers/markdown.ts +950 -0
- package/src/renderers/sidebar.ts +549 -0
- package/src/renderers/tabs.ts +682 -0
- package/src/renderers/text.ts +791 -0
- package/src/renderers/unicode.ts +917 -0
- package/src/renderers/utils.ts +942 -0
- package/src/router/adapters.ts +383 -0
- package/src/router/types.ts +140 -0
- package/src/router/utils.ts +452 -0
- package/src/schemas.ts +205 -0
- package/src/storybook/index.ts +91 -0
- package/src/storybook/interactive-decorator.tsx +659 -0
- package/src/storybook/keyboard-simulator.ts +501 -0
- package/src/theme/ansi-codes.ts +80 -0
- package/src/theme/box-drawing.ts +132 -0
- package/src/theme/color-convert.ts +254 -0
- package/src/theme/color-support.ts +321 -0
- package/src/theme/index.ts +134 -0
- package/src/theme/strip-ansi.ts +50 -0
- package/src/theme/tailwind-map.ts +469 -0
- package/src/theme/text-styles.ts +206 -0
- package/src/theme/theme-system.ts +568 -0
- package/src/types.ts +103 -0
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { U as UINode } from './types-CIlop5Ji.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Text Renderer - Plain text output without formatting
|
|
5
|
+
*
|
|
6
|
+
* The TEXT renderer is the first tier in the Universal Terminal UI's
|
|
7
|
+
* multi-tier rendering architecture. It outputs plain text without any
|
|
8
|
+
* formatting markers, colors, or special characters.
|
|
9
|
+
*
|
|
10
|
+
* Text Tier (tier 1 of 6):
|
|
11
|
+
* - Simple content only, no bold/italic/code markers
|
|
12
|
+
* - Tables rendered as key=value lines (one per line)
|
|
13
|
+
* - Lists rendered as bullet points (- item)
|
|
14
|
+
* - Metrics rendered as "Label: value" format
|
|
15
|
+
* - Nested structures indented (2 spaces per level)
|
|
16
|
+
* - Dashboard layout as labeled sections with separators
|
|
17
|
+
* - All special characters and formatting stripped
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Text render options
|
|
22
|
+
*/
|
|
23
|
+
interface TextRenderOptions {
|
|
24
|
+
/** Current indentation level */
|
|
25
|
+
indent?: number;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Renders a UINode tree to a plain text string.
|
|
29
|
+
*
|
|
30
|
+
* @param node - The UINode tree to render
|
|
31
|
+
* @param options - Optional rendering configuration
|
|
32
|
+
* @returns Plain text string
|
|
33
|
+
*/
|
|
34
|
+
declare function renderText(node: UINode, options?: TextRenderOptions): string;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* ANSI to CSS Converter
|
|
38
|
+
*
|
|
39
|
+
* Converts ANSI escape codes to CSS styles for web rendering.
|
|
40
|
+
* This enables browser-based terminal emulators to display styled output.
|
|
41
|
+
*
|
|
42
|
+
* Supports:
|
|
43
|
+
* - 16 basic colors (30-37, 40-47)
|
|
44
|
+
* - Bright colors (90-97, 100-107)
|
|
45
|
+
* - 256-color mode (38;5;n and 48;5;n)
|
|
46
|
+
* - True color / 24-bit RGB (38;2;r;g;b and 48;2;r;g;b)
|
|
47
|
+
* - Text styles (bold, dim, italic, underline, strikethrough, inverse)
|
|
48
|
+
* - Reset codes (0, 22, 23, 24, 39, 49)
|
|
49
|
+
*
|
|
50
|
+
* @module
|
|
51
|
+
*/
|
|
52
|
+
/**
|
|
53
|
+
* CSS style properties for a styled text span
|
|
54
|
+
*/
|
|
55
|
+
interface CSSStyleProperties {
|
|
56
|
+
color?: string;
|
|
57
|
+
backgroundColor?: string;
|
|
58
|
+
fontWeight?: 'bold' | 'normal';
|
|
59
|
+
fontStyle?: 'italic' | 'normal';
|
|
60
|
+
textDecoration?: 'underline' | 'line-through' | 'none';
|
|
61
|
+
opacity?: number;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* A span of text with associated CSS styles
|
|
65
|
+
*/
|
|
66
|
+
interface StyledSpan {
|
|
67
|
+
text: string;
|
|
68
|
+
style: CSSStyleProperties;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Result of parsing ANSI string to CSS
|
|
72
|
+
*/
|
|
73
|
+
interface ANSIToCSSResult {
|
|
74
|
+
spans: StyledSpan[];
|
|
75
|
+
plainText: string;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Converts ANSI-escaped string to CSS-styled spans.
|
|
79
|
+
*
|
|
80
|
+
* @param ansiString - String containing ANSI escape codes
|
|
81
|
+
* @returns Object with spans array and plain text
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```ts
|
|
85
|
+
* const result = ansiToCSS('\x1b[31mRed text\x1b[0m')
|
|
86
|
+
* // result.spans[0].style.color === 'red'
|
|
87
|
+
* // result.plainText === 'Red text'
|
|
88
|
+
* ```
|
|
89
|
+
*/
|
|
90
|
+
declare function ansiToCSS(ansiString: string): ANSIToCSSResult;
|
|
91
|
+
/**
|
|
92
|
+
* Converts a styled span to an inline CSS style string.
|
|
93
|
+
*
|
|
94
|
+
* @param span - A styled span object
|
|
95
|
+
* @returns CSS inline style string (e.g., "color: red; font-weight: bold")
|
|
96
|
+
*/
|
|
97
|
+
declare function spanToInlineStyle(span: StyledSpan): string;
|
|
98
|
+
/**
|
|
99
|
+
* Converts ANSI-escaped string to HTML with styled span elements.
|
|
100
|
+
*
|
|
101
|
+
* @param ansiString - String containing ANSI escape codes
|
|
102
|
+
* @returns HTML string with styled spans
|
|
103
|
+
*
|
|
104
|
+
* @example
|
|
105
|
+
* ```ts
|
|
106
|
+
* const html = ansiToHTML('\x1b[31mRed text\x1b[0m')
|
|
107
|
+
* // html === '<span style="color: red">Red text</span>'
|
|
108
|
+
* ```
|
|
109
|
+
*/
|
|
110
|
+
declare function ansiToHTML(ansiString: string): string;
|
|
111
|
+
/**
|
|
112
|
+
* Parses ANSI string to array of styled spans for React rendering.
|
|
113
|
+
*
|
|
114
|
+
* @param ansiString - String containing ANSI escape codes
|
|
115
|
+
* @returns Array of styled spans with React-compatible style objects
|
|
116
|
+
*/
|
|
117
|
+
declare function parseAnsiToSpans(ansiString: string): StyledSpan[];
|
|
118
|
+
|
|
119
|
+
export { type ANSIToCSSResult as A, type CSSStyleProperties as C, type StyledSpan as S, type TextRenderOptions as T, ansiToCSS as a, ansiToHTML as b, parseAnsiToSpans as p, renderText as r, spanToInlineStyle as s };
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { U as UINode } from './types-Bxu5PAgA.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Text Renderer - Plain text output without formatting
|
|
5
|
+
*
|
|
6
|
+
* The TEXT renderer is the first tier in the Universal Terminal UI's
|
|
7
|
+
* multi-tier rendering architecture. It outputs plain text without any
|
|
8
|
+
* formatting markers, colors, or special characters.
|
|
9
|
+
*
|
|
10
|
+
* Text Tier (tier 1 of 6):
|
|
11
|
+
* - Simple content only, no bold/italic/code markers
|
|
12
|
+
* - Tables rendered as key=value lines (one per line)
|
|
13
|
+
* - Lists rendered as bullet points (- item)
|
|
14
|
+
* - Metrics rendered as "Label: value" format
|
|
15
|
+
* - Nested structures indented (2 spaces per level)
|
|
16
|
+
* - Dashboard layout as labeled sections with separators
|
|
17
|
+
* - All special characters and formatting stripped
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Text render options
|
|
22
|
+
*/
|
|
23
|
+
interface TextRenderOptions {
|
|
24
|
+
/** Current indentation level */
|
|
25
|
+
indent?: number;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Renders a UINode tree to a plain text string.
|
|
29
|
+
*
|
|
30
|
+
* @param node - The UINode tree to render
|
|
31
|
+
* @param options - Optional rendering configuration
|
|
32
|
+
* @returns Plain text string
|
|
33
|
+
*/
|
|
34
|
+
declare function renderText(node: UINode, options?: TextRenderOptions): string;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* ANSI to CSS Converter
|
|
38
|
+
*
|
|
39
|
+
* Converts ANSI escape codes to CSS styles for web rendering.
|
|
40
|
+
* This enables browser-based terminal emulators to display styled output.
|
|
41
|
+
*
|
|
42
|
+
* Supports:
|
|
43
|
+
* - 16 basic colors (30-37, 40-47)
|
|
44
|
+
* - Bright colors (90-97, 100-107)
|
|
45
|
+
* - 256-color mode (38;5;n and 48;5;n)
|
|
46
|
+
* - True color / 24-bit RGB (38;2;r;g;b and 48;2;r;g;b)
|
|
47
|
+
* - Text styles (bold, dim, italic, underline, strikethrough, inverse)
|
|
48
|
+
* - Reset codes (0, 22, 23, 24, 39, 49)
|
|
49
|
+
*
|
|
50
|
+
* @module
|
|
51
|
+
*/
|
|
52
|
+
/**
|
|
53
|
+
* CSS style properties for a styled text span
|
|
54
|
+
*/
|
|
55
|
+
interface CSSStyleProperties {
|
|
56
|
+
color?: string;
|
|
57
|
+
backgroundColor?: string;
|
|
58
|
+
fontWeight?: 'bold' | 'normal';
|
|
59
|
+
fontStyle?: 'italic' | 'normal';
|
|
60
|
+
textDecoration?: 'underline' | 'line-through' | 'none';
|
|
61
|
+
opacity?: number;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* A span of text with associated CSS styles
|
|
65
|
+
*/
|
|
66
|
+
interface StyledSpan {
|
|
67
|
+
text: string;
|
|
68
|
+
style: CSSStyleProperties;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Result of parsing ANSI string to CSS
|
|
72
|
+
*/
|
|
73
|
+
interface ANSIToCSSResult {
|
|
74
|
+
spans: StyledSpan[];
|
|
75
|
+
plainText: string;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Converts ANSI-escaped string to CSS-styled spans.
|
|
79
|
+
*
|
|
80
|
+
* @param ansiString - String containing ANSI escape codes
|
|
81
|
+
* @returns Object with spans array and plain text
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```ts
|
|
85
|
+
* const result = ansiToCSS('\x1b[31mRed text\x1b[0m')
|
|
86
|
+
* // result.spans[0].style.color === 'red'
|
|
87
|
+
* // result.plainText === 'Red text'
|
|
88
|
+
* ```
|
|
89
|
+
*/
|
|
90
|
+
declare function ansiToCSS(ansiString: string): ANSIToCSSResult;
|
|
91
|
+
/**
|
|
92
|
+
* Converts a styled span to an inline CSS style string.
|
|
93
|
+
*
|
|
94
|
+
* @param span - A styled span object
|
|
95
|
+
* @returns CSS inline style string (e.g., "color: red; font-weight: bold")
|
|
96
|
+
*/
|
|
97
|
+
declare function spanToInlineStyle(span: StyledSpan): string;
|
|
98
|
+
/**
|
|
99
|
+
* Converts ANSI-escaped string to HTML with styled span elements.
|
|
100
|
+
*
|
|
101
|
+
* @param ansiString - String containing ANSI escape codes
|
|
102
|
+
* @returns HTML string with styled spans
|
|
103
|
+
*
|
|
104
|
+
* @example
|
|
105
|
+
* ```ts
|
|
106
|
+
* const html = ansiToHTML('\x1b[31mRed text\x1b[0m')
|
|
107
|
+
* // html === '<span style="color: red">Red text</span>'
|
|
108
|
+
* ```
|
|
109
|
+
*/
|
|
110
|
+
declare function ansiToHTML(ansiString: string): string;
|
|
111
|
+
/**
|
|
112
|
+
* Parses ANSI string to array of styled spans for React rendering.
|
|
113
|
+
*
|
|
114
|
+
* @param ansiString - String containing ANSI escape codes
|
|
115
|
+
* @returns Array of styled spans with React-compatible style objects
|
|
116
|
+
*/
|
|
117
|
+
declare function parseAnsiToSpans(ansiString: string): StyledSpan[];
|
|
118
|
+
|
|
119
|
+
export { type ANSIToCSSResult as A, type CSSStyleProperties as C, type StyledSpan as S, type TextRenderOptions as T, ansiToCSS as a, ansiToHTML as b, parseAnsiToSpans as p, renderText as r, spanToInlineStyle as s };
|