@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.
Files changed (191) hide show
  1. package/README.md +571 -0
  2. package/dist/ansi-css-Sk5mWtdK.d.ts +119 -0
  3. package/dist/ansi-css-V6JIHGsM.d.ts +119 -0
  4. package/dist/ansi-css-_3eSEU9d.d.ts +119 -0
  5. package/dist/chunk-3EFDH7PK.js +5235 -0
  6. package/dist/chunk-3RG5ZIWI.js +10 -0
  7. package/dist/chunk-3X5IR6WE.js +884 -0
  8. package/dist/chunk-4FV5ZDCE.js +5236 -0
  9. package/dist/chunk-4OVMSF2J.js +243 -0
  10. package/dist/chunk-63FEETIS.js +4048 -0
  11. package/dist/chunk-B43KP7XJ.js +884 -0
  12. package/dist/chunk-BMTJXWUV.js +655 -0
  13. package/dist/chunk-C3SVH4N7.js +882 -0
  14. package/dist/chunk-EVWR7Y47.js +874 -0
  15. package/dist/chunk-F6A5VWUC.js +1285 -0
  16. package/dist/chunk-FD7KW7GE.js +882 -0
  17. package/dist/chunk-GBQ6UD6I.js +655 -0
  18. package/dist/chunk-GMDD3M6U.js +5227 -0
  19. package/dist/chunk-JBHRXOXM.js +1058 -0
  20. package/dist/chunk-JFOO3EYO.js +1182 -0
  21. package/dist/chunk-JQ5H3WXL.js +1291 -0
  22. package/dist/chunk-JQD5NASE.js +234 -0
  23. package/dist/chunk-KRHJP5R7.js +592 -0
  24. package/dist/chunk-KWF6WVJE.js +962 -0
  25. package/dist/chunk-LHYQVN3H.js +1038 -0
  26. package/dist/chunk-M3TLQLGC.js +1032 -0
  27. package/dist/chunk-MVW4Q5OP.js +240 -0
  28. package/dist/chunk-NXCZSWLU.js +1294 -0
  29. package/dist/chunk-O25TNRO6.js +607 -0
  30. package/dist/chunk-PNECDA2I.js +884 -0
  31. package/dist/chunk-QIHWRLJR.js +962 -0
  32. package/dist/chunk-QW5YMQ7K.js +882 -0
  33. package/dist/chunk-R5U7XKVJ.js +16 -0
  34. package/dist/chunk-RP2MVQLR.js +962 -0
  35. package/dist/chunk-TP6RXGXA.js +1087 -0
  36. package/dist/chunk-TQQSTITZ.js +655 -0
  37. package/dist/chunk-X24GWXQV.js +1281 -0
  38. package/dist/components/index.d.ts +802 -0
  39. package/dist/components/index.js +149 -0
  40. package/dist/data/index.d.ts +2554 -0
  41. package/dist/data/index.js +51 -0
  42. package/dist/forms/index.d.ts +1596 -0
  43. package/dist/forms/index.js +464 -0
  44. package/dist/index-CQRFZntR.d.ts +867 -0
  45. package/dist/index.d.ts +579 -0
  46. package/dist/index.js +786 -0
  47. package/dist/interactive-D0JkWosD.d.ts +217 -0
  48. package/dist/keyboard/index.d.ts +2 -0
  49. package/dist/keyboard/index.js +43 -0
  50. package/dist/renderers/index.d.ts +546 -0
  51. package/dist/renderers/index.js +2157 -0
  52. package/dist/storybook/index.d.ts +396 -0
  53. package/dist/storybook/index.js +641 -0
  54. package/dist/theme/index.d.ts +1339 -0
  55. package/dist/theme/index.js +123 -0
  56. package/dist/types-Bxu5PAgA.d.ts +710 -0
  57. package/dist/types-CIlop5Ji.d.ts +701 -0
  58. package/dist/types-Ca8p_p5X.d.ts +710 -0
  59. package/package.json +90 -0
  60. package/src/__tests__/components/data/card.test.ts +458 -0
  61. package/src/__tests__/components/data/list.test.ts +473 -0
  62. package/src/__tests__/components/data/metrics.test.ts +541 -0
  63. package/src/__tests__/components/data/table.test.ts +448 -0
  64. package/src/__tests__/components/input/field.test.ts +555 -0
  65. package/src/__tests__/components/input/form.test.ts +870 -0
  66. package/src/__tests__/components/input/search.test.ts +1238 -0
  67. package/src/__tests__/components/input/select.test.ts +658 -0
  68. package/src/__tests__/components/navigation/breadcrumb.test.ts +923 -0
  69. package/src/__tests__/components/navigation/command-palette.test.ts +1095 -0
  70. package/src/__tests__/components/navigation/sidebar.test.ts +1018 -0
  71. package/src/__tests__/components/navigation/tabs.test.ts +995 -0
  72. package/src/__tests__/components.test.tsx +1197 -0
  73. package/src/__tests__/core/compiler.test.ts +986 -0
  74. package/src/__tests__/core/parser.test.ts +785 -0
  75. package/src/__tests__/core/tier-switcher.test.ts +1103 -0
  76. package/src/__tests__/core/types.test.ts +1398 -0
  77. package/src/__tests__/data/collections.test.ts +1337 -0
  78. package/src/__tests__/data/db.test.ts +1265 -0
  79. package/src/__tests__/data/reactive.test.ts +1010 -0
  80. package/src/__tests__/data/sync.test.ts +1614 -0
  81. package/src/__tests__/errors.test.ts +660 -0
  82. package/src/__tests__/forms/integration.test.ts +444 -0
  83. package/src/__tests__/integration.test.ts +905 -0
  84. package/src/__tests__/keyboard.test.ts +1791 -0
  85. package/src/__tests__/renderer.test.ts +489 -0
  86. package/src/__tests__/renderers/ansi-css.test.ts +948 -0
  87. package/src/__tests__/renderers/ansi.test.ts +1366 -0
  88. package/src/__tests__/renderers/ascii.test.ts +1360 -0
  89. package/src/__tests__/renderers/interactive.test.ts +2353 -0
  90. package/src/__tests__/renderers/markdown.test.ts +1483 -0
  91. package/src/__tests__/renderers/text.test.ts +1369 -0
  92. package/src/__tests__/renderers/unicode.test.ts +1307 -0
  93. package/src/__tests__/theme.test.ts +639 -0
  94. package/src/__tests__/utils/assertions.ts +685 -0
  95. package/src/__tests__/utils/index.ts +115 -0
  96. package/src/__tests__/utils/test-renderer.ts +381 -0
  97. package/src/__tests__/utils/utils.test.ts +560 -0
  98. package/src/components/containers/card.ts +56 -0
  99. package/src/components/containers/dialog.ts +53 -0
  100. package/src/components/containers/index.ts +9 -0
  101. package/src/components/containers/panel.ts +59 -0
  102. package/src/components/feedback/badge.ts +40 -0
  103. package/src/components/feedback/index.ts +8 -0
  104. package/src/components/feedback/spinner.ts +23 -0
  105. package/src/components/helpers.ts +81 -0
  106. package/src/components/index.ts +153 -0
  107. package/src/components/layout/breadcrumb.ts +31 -0
  108. package/src/components/layout/index.ts +10 -0
  109. package/src/components/layout/list.ts +29 -0
  110. package/src/components/layout/sidebar.ts +79 -0
  111. package/src/components/layout/table.ts +62 -0
  112. package/src/components/primitives/box.ts +95 -0
  113. package/src/components/primitives/button.ts +54 -0
  114. package/src/components/primitives/index.ts +11 -0
  115. package/src/components/primitives/input.ts +88 -0
  116. package/src/components/primitives/select.ts +97 -0
  117. package/src/components/primitives/text.ts +60 -0
  118. package/src/components/render.ts +155 -0
  119. package/src/components/templates/app.ts +43 -0
  120. package/src/components/templates/index.ts +8 -0
  121. package/src/components/templates/site.ts +54 -0
  122. package/src/components/types.ts +777 -0
  123. package/src/core/compiler.ts +718 -0
  124. package/src/core/parser.ts +127 -0
  125. package/src/core/tier-switcher.ts +607 -0
  126. package/src/core/types.ts +672 -0
  127. package/src/data/collection.ts +316 -0
  128. package/src/data/collections.ts +50 -0
  129. package/src/data/context.tsx +174 -0
  130. package/src/data/db.ts +127 -0
  131. package/src/data/hooks.ts +532 -0
  132. package/src/data/index.ts +138 -0
  133. package/src/data/reactive.ts +1225 -0
  134. package/src/data/saas-collections.ts +375 -0
  135. package/src/data/sync.ts +1213 -0
  136. package/src/data/types.ts +660 -0
  137. package/src/forms/converters.ts +512 -0
  138. package/src/forms/index.ts +133 -0
  139. package/src/forms/schemas.ts +403 -0
  140. package/src/forms/types.ts +476 -0
  141. package/src/index.ts +542 -0
  142. package/src/keyboard/focus.ts +748 -0
  143. package/src/keyboard/index.ts +96 -0
  144. package/src/keyboard/integration.ts +371 -0
  145. package/src/keyboard/manager.ts +377 -0
  146. package/src/keyboard/presets.ts +90 -0
  147. package/src/renderers/ansi-css.ts +576 -0
  148. package/src/renderers/ansi.ts +802 -0
  149. package/src/renderers/ascii.ts +680 -0
  150. package/src/renderers/breadcrumb.ts +480 -0
  151. package/src/renderers/command-palette.ts +802 -0
  152. package/src/renderers/components/field.ts +210 -0
  153. package/src/renderers/components/form.ts +327 -0
  154. package/src/renderers/components/index.ts +21 -0
  155. package/src/renderers/components/search.ts +449 -0
  156. package/src/renderers/components/select.ts +222 -0
  157. package/src/renderers/index.ts +101 -0
  158. package/src/renderers/interactive/component-handlers.ts +622 -0
  159. package/src/renderers/interactive/cursor-manager.ts +147 -0
  160. package/src/renderers/interactive/focus-manager.ts +279 -0
  161. package/src/renderers/interactive/index.ts +661 -0
  162. package/src/renderers/interactive/input-handler.ts +164 -0
  163. package/src/renderers/interactive/keyboard-handler.ts +212 -0
  164. package/src/renderers/interactive/mouse-handler.ts +167 -0
  165. package/src/renderers/interactive/state-manager.ts +109 -0
  166. package/src/renderers/interactive/types.ts +338 -0
  167. package/src/renderers/interactive-string.ts +299 -0
  168. package/src/renderers/interactive.ts +59 -0
  169. package/src/renderers/markdown.ts +950 -0
  170. package/src/renderers/sidebar.ts +549 -0
  171. package/src/renderers/tabs.ts +682 -0
  172. package/src/renderers/text.ts +791 -0
  173. package/src/renderers/unicode.ts +917 -0
  174. package/src/renderers/utils.ts +942 -0
  175. package/src/router/adapters.ts +383 -0
  176. package/src/router/types.ts +140 -0
  177. package/src/router/utils.ts +452 -0
  178. package/src/schemas.ts +205 -0
  179. package/src/storybook/index.ts +91 -0
  180. package/src/storybook/interactive-decorator.tsx +659 -0
  181. package/src/storybook/keyboard-simulator.ts +501 -0
  182. package/src/theme/ansi-codes.ts +80 -0
  183. package/src/theme/box-drawing.ts +132 -0
  184. package/src/theme/color-convert.ts +254 -0
  185. package/src/theme/color-support.ts +321 -0
  186. package/src/theme/index.ts +134 -0
  187. package/src/theme/strip-ansi.ts +50 -0
  188. package/src/theme/tailwind-map.ts +469 -0
  189. package/src/theme/text-styles.ts +206 -0
  190. package/src/theme/theme-system.ts +568 -0
  191. package/src/types.ts +103 -0
@@ -0,0 +1,243 @@
1
+ import {
2
+ external_exports
3
+ } from "./chunk-63FEETIS.js";
4
+
5
+ // src/theme/ansi-codes.ts
6
+ var ANSI = {
7
+ // Reset
8
+ reset: "\x1B[0m",
9
+ // Styles
10
+ bold: "\x1B[1m",
11
+ dim: "\x1B[2m",
12
+ italic: "\x1B[3m",
13
+ underline: "\x1B[4m",
14
+ inverse: "\x1B[7m",
15
+ strikethrough: "\x1B[9m",
16
+ // Foreground colors (basic)
17
+ black: "\x1B[30m",
18
+ red: "\x1B[31m",
19
+ green: "\x1B[32m",
20
+ yellow: "\x1B[33m",
21
+ blue: "\x1B[34m",
22
+ magenta: "\x1B[35m",
23
+ cyan: "\x1B[36m",
24
+ white: "\x1B[37m",
25
+ // Bright foreground colors
26
+ brightBlack: "\x1B[90m",
27
+ brightRed: "\x1B[91m",
28
+ brightGreen: "\x1B[92m",
29
+ brightYellow: "\x1B[93m",
30
+ brightBlue: "\x1B[94m",
31
+ brightMagenta: "\x1B[95m",
32
+ brightCyan: "\x1B[96m",
33
+ brightWhite: "\x1B[97m",
34
+ // Background colors
35
+ bgBlack: "\x1B[40m",
36
+ bgRed: "\x1B[41m",
37
+ bgGreen: "\x1B[42m",
38
+ bgYellow: "\x1B[43m",
39
+ bgBlue: "\x1B[44m",
40
+ bgMagenta: "\x1B[45m",
41
+ bgCyan: "\x1B[46m",
42
+ bgWhite: "\x1B[47m",
43
+ // Bright background colors
44
+ bgBrightBlack: "\x1B[100m",
45
+ bgBrightRed: "\x1B[101m",
46
+ bgBrightGreen: "\x1B[102m",
47
+ bgBrightYellow: "\x1B[103m",
48
+ bgBrightBlue: "\x1B[104m",
49
+ bgBrightMagenta: "\x1B[105m",
50
+ bgBrightCyan: "\x1B[106m",
51
+ bgBrightWhite: "\x1B[107m"
52
+ };
53
+
54
+ // src/schemas.ts
55
+ var HexColorSchema = external_exports.string().regex(
56
+ /^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/,
57
+ "Invalid hex color format. Expected #RGB, RGB, #RRGGBB, or RRGGBB"
58
+ );
59
+ var RgbComponentSchema = external_exports.number().int("RGB component must be an integer").min(0, "RGB component must be >= 0").max(255, "RGB component must be <= 255");
60
+ var RgbColorSchema = external_exports.object({
61
+ r: RgbComponentSchema,
62
+ g: RgbComponentSchema,
63
+ b: RgbComponentSchema
64
+ });
65
+ var Ansi256CodeSchema = external_exports.number().int("ANSI 256 code must be an integer").min(0, "ANSI 256 code must be >= 0").max(255, "ANSI 256 code must be <= 255");
66
+ var AnsiEscapeSchema = external_exports.string().refine(
67
+ (val) => {
68
+ if (val === "") return true;
69
+ return /^\x1b\[\d+(;\d+)*m$/.test(val);
70
+ },
71
+ {
72
+ message: "Invalid ANSI escape sequence"
73
+ }
74
+ );
75
+ var ThemeModeSchema = external_exports.enum(["dark", "light"]);
76
+ var TerminalThemeColorsSchema = external_exports.object({
77
+ primary: AnsiEscapeSchema,
78
+ secondary: AnsiEscapeSchema,
79
+ accent: AnsiEscapeSchema,
80
+ muted: AnsiEscapeSchema,
81
+ success: AnsiEscapeSchema,
82
+ warning: AnsiEscapeSchema,
83
+ error: AnsiEscapeSchema,
84
+ info: AnsiEscapeSchema,
85
+ border: AnsiEscapeSchema,
86
+ background: AnsiEscapeSchema,
87
+ foreground: AnsiEscapeSchema,
88
+ selection: AnsiEscapeSchema,
89
+ focus: AnsiEscapeSchema
90
+ });
91
+ var CreateTerminalThemeOptionsSchema = external_exports.object({
92
+ mode: ThemeModeSchema.optional(),
93
+ colors: TerminalThemeColorsSchema.partial().optional()
94
+ });
95
+ var LegacyTerminalThemeSchema = external_exports.object({
96
+ primary: AnsiEscapeSchema,
97
+ secondary: AnsiEscapeSchema,
98
+ accent: AnsiEscapeSchema,
99
+ muted: AnsiEscapeSchema,
100
+ success: AnsiEscapeSchema,
101
+ warning: AnsiEscapeSchema,
102
+ error: AnsiEscapeSchema,
103
+ info: AnsiEscapeSchema,
104
+ border: AnsiEscapeSchema,
105
+ background: AnsiEscapeSchema,
106
+ foreground: AnsiEscapeSchema,
107
+ selection: AnsiEscapeSchema,
108
+ focus: AnsiEscapeSchema
109
+ });
110
+ var TypographyOptionsSchema = external_exports.object({
111
+ headingWeight: external_exports.string(),
112
+ bodyWeight: external_exports.string(),
113
+ codeFont: external_exports.string()
114
+ });
115
+ var SpacingOptionsSchema = external_exports.object({
116
+ xs: external_exports.number(),
117
+ sm: external_exports.number(),
118
+ md: external_exports.number(),
119
+ lg: external_exports.number(),
120
+ xl: external_exports.number()
121
+ });
122
+ var LegacyTerminalThemeWithExtrasSchema = LegacyTerminalThemeSchema.extend({
123
+ typography: TypographyOptionsSchema.optional(),
124
+ spacing: SpacingOptionsSchema.optional()
125
+ });
126
+ var CreateThemeInputSchema = LegacyTerminalThemeWithExtrasSchema.partial();
127
+ var RgbToAnsiOptionsSchema = external_exports.object({
128
+ background: external_exports.boolean().optional()
129
+ });
130
+ var ColorSupportSchema = external_exports.enum(["none", "16", "256", "truecolor"]);
131
+
132
+ // src/theme/color-convert.ts
133
+ function rgbToAnsi256(r, g, b) {
134
+ if (r === 0 && g === 0 && b === 0) {
135
+ return 0;
136
+ }
137
+ if (r === 255 && g === 255 && b === 255) {
138
+ return 15;
139
+ }
140
+ if (Math.abs(r - g) < 10 && Math.abs(g - b) < 10 && Math.abs(r - b) < 10) {
141
+ const avg = (r + g + b) / 3;
142
+ if (avg < 8) return 0;
143
+ if (avg > 248) return 15;
144
+ const grayIndex = Math.round((avg - 8) / 10);
145
+ return Math.min(255, Math.max(232, 232 + grayIndex));
146
+ }
147
+ const toColorCubeIndex = (v) => {
148
+ if (v < 48) return 0;
149
+ if (v < 115) return 1;
150
+ return Math.min(5, Math.floor((v - 35) / 40));
151
+ };
152
+ const ri = toColorCubeIndex(r);
153
+ const gi = toColorCubeIndex(g);
154
+ const bi = toColorCubeIndex(b);
155
+ return 16 + 36 * ri + 6 * gi + bi;
156
+ }
157
+ function hexToRgb(hex2) {
158
+ if (!hex2 || typeof hex2 !== "string") {
159
+ return { r: 0, g: 0, b: 0 };
160
+ }
161
+ hex2 = hex2.replace(/^#/, "");
162
+ if (hex2.length === 0) {
163
+ return { r: 0, g: 0, b: 0 };
164
+ }
165
+ if (hex2.length === 3) {
166
+ hex2 = hex2.split("").map((c) => c + c).join("");
167
+ }
168
+ if (!/^[0-9a-fA-F]{6}$/.test(hex2)) {
169
+ return { r: 0, g: 0, b: 0 };
170
+ }
171
+ const num = parseInt(hex2, 16);
172
+ return {
173
+ r: num >> 16 & 255,
174
+ g: num >> 8 & 255,
175
+ b: num & 255
176
+ };
177
+ }
178
+ function rgbToAnsi(r, g, b, opts) {
179
+ const code = rgbToAnsi256(r, g, b);
180
+ const prefix = opts?.background ? "48" : "38";
181
+ return `\x1B[${prefix};5;${code}m`;
182
+ }
183
+ function hexToAnsi(hex2, opts) {
184
+ const { r, g, b } = hexToRgb(hex2);
185
+ return rgbToAnsi(r, g, b, opts);
186
+ }
187
+ function ansi256(n) {
188
+ Ansi256CodeSchema.parse(n);
189
+ return `\x1B[38;5;${n}m`;
190
+ }
191
+ function ansi256Bg(n) {
192
+ Ansi256CodeSchema.parse(n);
193
+ return `\x1B[48;5;${n}m`;
194
+ }
195
+ function rgb(r, g, b) {
196
+ RgbComponentSchema.parse(r);
197
+ RgbComponentSchema.parse(g);
198
+ RgbComponentSchema.parse(b);
199
+ return `\x1B[38;2;${r};${g};${b}m`;
200
+ }
201
+ function rgbBg(r, g, b) {
202
+ RgbComponentSchema.parse(r);
203
+ RgbComponentSchema.parse(g);
204
+ RgbComponentSchema.parse(b);
205
+ return `\x1B[48;2;${r};${g};${b}m`;
206
+ }
207
+ function hex(color) {
208
+ HexColorSchema.parse(color);
209
+ const { r, g, b } = hexToRgb(color);
210
+ return `\x1B[38;2;${r};${g};${b}m`;
211
+ }
212
+ function hexBg(color) {
213
+ HexColorSchema.parse(color);
214
+ const { r, g, b } = hexToRgb(color);
215
+ return `\x1B[48;2;${r};${g};${b}m`;
216
+ }
217
+
218
+ export {
219
+ ANSI,
220
+ HexColorSchema,
221
+ RgbComponentSchema,
222
+ RgbColorSchema,
223
+ Ansi256CodeSchema,
224
+ AnsiEscapeSchema,
225
+ ThemeModeSchema,
226
+ TerminalThemeColorsSchema,
227
+ CreateTerminalThemeOptionsSchema,
228
+ LegacyTerminalThemeSchema,
229
+ LegacyTerminalThemeWithExtrasSchema,
230
+ CreateThemeInputSchema,
231
+ RgbToAnsiOptionsSchema,
232
+ ColorSupportSchema,
233
+ rgbToAnsi256,
234
+ hexToRgb,
235
+ rgbToAnsi,
236
+ hexToAnsi,
237
+ ansi256,
238
+ ansi256Bg,
239
+ rgb,
240
+ rgbBg,
241
+ hex,
242
+ hexBg
243
+ };