@profullstack/hqtui 0.1.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 (98) hide show
  1. package/README.md +144 -0
  2. package/dist/ansi.d.ts +42 -0
  3. package/dist/ansi.d.ts.map +1 -0
  4. package/dist/ansi.js +66 -0
  5. package/dist/ansi.js.map +1 -0
  6. package/dist/app.d.ts +128 -0
  7. package/dist/app.d.ts.map +1 -0
  8. package/dist/app.js +296 -0
  9. package/dist/app.js.map +1 -0
  10. package/dist/buffer.d.ts +50 -0
  11. package/dist/buffer.d.ts.map +1 -0
  12. package/dist/buffer.js +184 -0
  13. package/dist/buffer.js.map +1 -0
  14. package/dist/capabilities.d.ts +36 -0
  15. package/dist/capabilities.d.ts.map +1 -0
  16. package/dist/capabilities.js +93 -0
  17. package/dist/capabilities.js.map +1 -0
  18. package/dist/color.d.ts +47 -0
  19. package/dist/color.d.ts.map +1 -0
  20. package/dist/color.js +176 -0
  21. package/dist/color.js.map +1 -0
  22. package/dist/diff.d.ts +39 -0
  23. package/dist/diff.d.ts.map +1 -0
  24. package/dist/diff.js +203 -0
  25. package/dist/diff.js.map +1 -0
  26. package/dist/graphics/blocks.d.ts +26 -0
  27. package/dist/graphics/blocks.d.ts.map +1 -0
  28. package/dist/graphics/blocks.js +49 -0
  29. package/dist/graphics/blocks.js.map +1 -0
  30. package/dist/graphics/braille.d.ts +33 -0
  31. package/dist/graphics/braille.d.ts.map +1 -0
  32. package/dist/graphics/braille.js +166 -0
  33. package/dist/graphics/braille.js.map +1 -0
  34. package/dist/graphics/index.d.ts +4 -0
  35. package/dist/graphics/index.d.ts.map +1 -0
  36. package/dist/graphics/index.js +4 -0
  37. package/dist/graphics/index.js.map +1 -0
  38. package/dist/graphics/plot.d.ts +91 -0
  39. package/dist/graphics/plot.d.ts.map +1 -0
  40. package/dist/graphics/plot.js +291 -0
  41. package/dist/graphics/plot.js.map +1 -0
  42. package/dist/index.d.ts +34 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/index.js +42 -0
  45. package/dist/index.js.map +1 -0
  46. package/dist/input.d.ts +62 -0
  47. package/dist/input.d.ts.map +1 -0
  48. package/dist/input.js +245 -0
  49. package/dist/input.js.map +1 -0
  50. package/dist/layout.d.ts +51 -0
  51. package/dist/layout.d.ts.map +1 -0
  52. package/dist/layout.js +163 -0
  53. package/dist/layout.js.map +1 -0
  54. package/dist/surface.d.ts +81 -0
  55. package/dist/surface.d.ts.map +1 -0
  56. package/dist/surface.js +181 -0
  57. package/dist/surface.js.map +1 -0
  58. package/dist/terminal.d.ts +63 -0
  59. package/dist/terminal.d.ts.map +1 -0
  60. package/dist/terminal.js +189 -0
  61. package/dist/terminal.js.map +1 -0
  62. package/dist/testing.d.ts +71 -0
  63. package/dist/testing.d.ts.map +1 -0
  64. package/dist/testing.js +171 -0
  65. package/dist/testing.js.map +1 -0
  66. package/dist/theme.d.ts +58 -0
  67. package/dist/theme.d.ts.map +1 -0
  68. package/dist/theme.js +238 -0
  69. package/dist/theme.js.map +1 -0
  70. package/dist/ui.d.ts +194 -0
  71. package/dist/ui.d.ts.map +1 -0
  72. package/dist/ui.js +439 -0
  73. package/dist/ui.js.map +1 -0
  74. package/dist/unicode.d.ts +36 -0
  75. package/dist/unicode.d.ts.map +1 -0
  76. package/dist/unicode.js +221 -0
  77. package/dist/unicode.js.map +1 -0
  78. package/dist/widgets/controls.d.ts +95 -0
  79. package/dist/widgets/controls.d.ts.map +1 -0
  80. package/dist/widgets/controls.js +231 -0
  81. package/dist/widgets/controls.js.map +1 -0
  82. package/dist/widgets/index.d.ts +5 -0
  83. package/dist/widgets/index.d.ts.map +1 -0
  84. package/dist/widgets/index.js +5 -0
  85. package/dist/widgets/index.js.map +1 -0
  86. package/dist/widgets/meters.d.ts +100 -0
  87. package/dist/widgets/meters.d.ts.map +1 -0
  88. package/dist/widgets/meters.js +209 -0
  89. package/dist/widgets/meters.js.map +1 -0
  90. package/dist/widgets/table.d.ts +92 -0
  91. package/dist/widgets/table.d.ts.map +1 -0
  92. package/dist/widgets/table.js +228 -0
  93. package/dist/widgets/table.js.map +1 -0
  94. package/dist/widgets/text.d.ts +64 -0
  95. package/dist/widgets/text.d.ts.map +1 -0
  96. package/dist/widgets/text.js +123 -0
  97. package/dist/widgets/text.js.map +1 -0
  98. package/package.json +56 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controls.js","sourceRoot":"","sources":["../../src/widgets/controls.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export * from "./text.ts";
2
+ export * from "./table.ts";
3
+ export * from "./meters.ts";
4
+ export * from "./controls.ts";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/widgets/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from "./text.js";
2
+ export * from "./table.js";
3
+ export * from "./meters.js";
4
+ export * from "./controls.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/widgets/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
@@ -0,0 +1,100 @@
1
+ import type { Surface, Align } from "../surface.ts";
2
+ import { type Color } from "../color.ts";
3
+ import { gauge as drawGauge, donut as drawDonut } from "../graphics/plot.ts";
4
+ import type { Series, PlotOptions } from "../graphics/plot.ts";
5
+ export interface MeterOptions {
6
+ /** 0-1, or supply `max` and pass an absolute value. */
7
+ value: number;
8
+ max?: number;
9
+ label?: string;
10
+ /** Right-hand readout. Defaults to a percentage. */
11
+ text?: string;
12
+ labelWidth?: number;
13
+ valueWidth?: number;
14
+ color?: Color;
15
+ /** Green-to-red by fill level. Default true. */
16
+ heat?: boolean;
17
+ background?: Color;
18
+ style?: "smooth" | "segmented" | "ascii";
19
+ showValue?: boolean;
20
+ }
21
+ /** `label ████████░░░░ 42%` on a single row. The most-used widget here. */
22
+ export declare function drawMeter(surface: Surface, options: MeterOptions): void;
23
+ export interface MetersOptions {
24
+ items: {
25
+ label: string;
26
+ value: number;
27
+ max?: number;
28
+ color?: Color;
29
+ text?: string;
30
+ }[];
31
+ labelWidth?: number;
32
+ valueWidth?: number;
33
+ heat?: boolean;
34
+ background?: Color;
35
+ style?: MeterOptions["style"];
36
+ /** Lay out in N columns when there is room, like btop's core grid. */
37
+ columns?: number;
38
+ gap?: number;
39
+ }
40
+ /** A stack (or grid) of meters — per-core CPU, per-disk usage, and so on. */
41
+ export declare function drawMeters(surface: Surface, options: MetersOptions): void;
42
+ export interface ProgressOptions {
43
+ value: number;
44
+ max?: number;
45
+ label?: string;
46
+ color?: Color;
47
+ background?: Color;
48
+ /** Show `37 / 120` instead of a percentage. */
49
+ showCount?: boolean;
50
+ }
51
+ export declare function drawProgress(surface: Surface, options: ProgressOptions): void;
52
+ export interface GraphOptions extends PlotOptions {
53
+ /** A single series, or several. */
54
+ values?: number[];
55
+ series?: Series[];
56
+ /** Draw min/max labels down the left edge. */
57
+ axis?: boolean;
58
+ axisFormat?: (value: number) => string;
59
+ axisColor?: Color;
60
+ /** Time labels along the bottom, e.g. 60s 45s 30s. */
61
+ timeAxis?: string[];
62
+ legend?: boolean;
63
+ legendAlign?: Align;
64
+ }
65
+ /** Line/area graph. Braille by default, so it reads at 2x4 the cell resolution. */
66
+ export declare function drawGraph(surface: Surface, options: GraphOptions): void;
67
+ export interface SparklineOptions {
68
+ values: number[];
69
+ color?: Color;
70
+ colors?: Color[];
71
+ min?: number;
72
+ max?: number;
73
+ label?: string;
74
+ text?: string;
75
+ background?: Color;
76
+ }
77
+ /** One-row trend, optionally with a label and a right-hand readout. */
78
+ export declare function drawSparklineWidget(surface: Surface, options: SparklineOptions): void;
79
+ export interface HeatBarOptions {
80
+ /** 0-1 per segment. Renders like btop's temperature bars. */
81
+ value: number;
82
+ width?: number;
83
+ color?: Color;
84
+ background?: Color;
85
+ char?: string;
86
+ }
87
+ /** A segmented heat bar: discrete ticks colored along the theme ramp. */
88
+ export declare function drawHeatBar(surface: Surface, options: HeatBarOptions): void;
89
+ export { drawGauge, drawDonut };
90
+ export type { GaugeOptions, DonutOptions } from "../graphics/plot.ts";
91
+ export interface ColumnsOptions {
92
+ values: number[];
93
+ color?: Color;
94
+ colors?: Color[];
95
+ max?: number;
96
+ background?: Color;
97
+ }
98
+ /** Block-mode column chart. Cheaper than Braille and reads well when short. */
99
+ export declare function drawColumns(surface: Surface, options: ColumnsOptions): void;
100
+ //# sourceMappingURL=meters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meters.d.ts","sourceRoot":"","sources":["../../src/widgets/meters.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,209 @@
1
+ import { Attr } from "../buffer.js";
2
+ import { mix, gradient } from "../color.js";
3
+ import { fit, stringWidth, truncate } from "../unicode.js";
4
+ import { heatColor, seriesColor } from "../theme.js";
5
+ import { bar as drawBar, plot, sparkline as drawSparkline, gauge as drawGauge, donut as drawDonut } from "../graphics/plot.js";
6
+ import { verticalGlyph } from "../graphics/blocks.js";
7
+ /** `label ████████░░░░ 42%` on a single row. The most-used widget here. */
8
+ export function drawMeter(surface, options) {
9
+ if (surface.empty)
10
+ return;
11
+ const theme = surface.theme;
12
+ const ratio = Math.max(0, Math.min(1, options.max ? options.value / options.max : options.value));
13
+ const label = options.label ?? "";
14
+ const labelWidth = label ? (options.labelWidth ?? stringWidth(label) + 1) : 0;
15
+ const valueText = options.showValue === false ? "" : options.text ?? `${Math.round(ratio * 100)}%`;
16
+ const valueWidth = valueText ? (options.valueWidth ?? stringWidth(valueText) + 1) : 0;
17
+ const barWidth = Math.max(0, surface.width - labelWidth - valueWidth);
18
+ if (labelWidth > 0) {
19
+ surface.text(0, 0, fit(truncate(label, labelWidth), labelWidth), {
20
+ fg: theme.muted,
21
+ bg: options.background,
22
+ });
23
+ }
24
+ if (barWidth > 0) {
25
+ drawBar(surface.sub(labelWidth, 0, barWidth, 1), {
26
+ value: ratio,
27
+ color: options.color,
28
+ heat: options.heat ?? options.color === undefined,
29
+ background: options.background,
30
+ style: options.style,
31
+ });
32
+ }
33
+ if (valueWidth > 0) {
34
+ surface.text(surface.width - valueWidth, 0, fit(valueText, valueWidth, "right"), {
35
+ fg: options.color ?? (options.heat === false ? theme.foreground : heatColor(theme, ratio)),
36
+ bg: options.background,
37
+ attrs: Attr.Bold,
38
+ });
39
+ }
40
+ }
41
+ /** A stack (or grid) of meters — per-core CPU, per-disk usage, and so on. */
42
+ export function drawMeters(surface, options) {
43
+ if (surface.empty)
44
+ return;
45
+ const columns = Math.max(1, options.columns ?? 1);
46
+ const gap = options.gap ?? 2;
47
+ const colWidth = Math.floor((surface.width - gap * (columns - 1)) / columns);
48
+ const perColumn = Math.ceil(options.items.length / columns);
49
+ options.items.forEach((item, i) => {
50
+ const col = Math.floor(i / perColumn);
51
+ const row = i % perColumn;
52
+ if (row >= surface.height || col >= columns)
53
+ return;
54
+ drawMeter(surface.sub(col * (colWidth + gap), row, colWidth, 1), {
55
+ value: item.value,
56
+ max: item.max,
57
+ label: item.label,
58
+ text: item.text,
59
+ color: item.color,
60
+ labelWidth: options.labelWidth,
61
+ valueWidth: options.valueWidth,
62
+ heat: options.heat,
63
+ background: options.background,
64
+ style: options.style,
65
+ });
66
+ });
67
+ }
68
+ export function drawProgress(surface, options) {
69
+ const max = options.max ?? 1;
70
+ drawMeter(surface, {
71
+ value: options.value,
72
+ max,
73
+ label: options.label,
74
+ color: options.color ?? surface.theme.primary,
75
+ heat: false,
76
+ background: options.background,
77
+ text: options.showCount ? `${Math.round(options.value)}/${Math.round(max)}` : undefined,
78
+ });
79
+ }
80
+ function niceLabel(value) {
81
+ if (Math.abs(value) >= 1000)
82
+ return `${Math.round(value / 100) / 10}k`;
83
+ if (Number.isInteger(value))
84
+ return String(value);
85
+ return value.toFixed(1);
86
+ }
87
+ /** Line/area graph. Braille by default, so it reads at 2x4 the cell resolution. */
88
+ export function drawGraph(surface, options) {
89
+ if (surface.empty)
90
+ return;
91
+ const theme = surface.theme;
92
+ const seriesList = options.series ?? [{ values: options.values ?? [] }];
93
+ let plotSurface = surface;
94
+ const axisColor = options.axisColor ?? theme.muted;
95
+ if (options.axis) {
96
+ // Match the window the plot itself will use, so the labels stay truthful.
97
+ const columns = (options.mode ?? "braille") === "braille" ? surface.width * 2 : surface.width;
98
+ const values = seriesList
99
+ .flatMap((s) => s.values.slice(-Math.max(1, columns)))
100
+ .filter(Number.isFinite);
101
+ const max = options.max ?? (values.length ? Math.max(...values) : 1);
102
+ const min = options.min ?? 0;
103
+ const format = options.axisFormat ?? niceLabel;
104
+ const labelWidth = Math.max(stringWidth(format(max)), stringWidth(format(min))) + 1;
105
+ surface.text(0, 0, fit(format(max), labelWidth, "right"), { fg: axisColor });
106
+ if (surface.height > 1) {
107
+ surface.text(0, surface.height - 1, fit(format(min), labelWidth, "right"), { fg: axisColor });
108
+ }
109
+ plotSurface = surface.sub(labelWidth, 0, surface.width - labelWidth, surface.height);
110
+ }
111
+ let graphSurface = plotSurface;
112
+ if (options.timeAxis && plotSurface.height > 1) {
113
+ graphSurface = plotSurface.sub(0, 0, plotSurface.width, plotSurface.height - 1);
114
+ const labels = options.timeAxis;
115
+ const step = labels.length > 1 ? (plotSurface.width - 1) / (labels.length - 1) : 0;
116
+ labels.forEach((label, i) => {
117
+ const x = Math.min(plotSurface.width - stringWidth(label), Math.round(i * step));
118
+ plotSurface.text(Math.max(0, x), plotSurface.height - 1, label, { fg: axisColor });
119
+ });
120
+ }
121
+ plot(graphSurface, seriesList, options);
122
+ if (options.legend) {
123
+ const parts = seriesList
124
+ .map((s, i) => ({ label: s.label, color: s.color ?? seriesColor(theme, i) }))
125
+ .filter((p) => p.label);
126
+ let x = options.legendAlign === "right"
127
+ ? Math.max(0, graphSurface.width - parts.reduce((a, p) => a + stringWidth(p.label) + 3, 0))
128
+ : 0;
129
+ // Sit the legend on the last row when there is one to spare, so it never
130
+ // lands on top of the plot's busiest corner.
131
+ const y = graphSurface.height > 3 ? graphSurface.height - 1 : 0;
132
+ for (const part of parts) {
133
+ x += graphSurface.text(x, y, "■ ", { fg: part.color });
134
+ x += graphSurface.text(x, y, `${part.label} `, { fg: theme.muted });
135
+ }
136
+ }
137
+ }
138
+ /** One-row trend, optionally with a label and a right-hand readout. */
139
+ export function drawSparklineWidget(surface, options) {
140
+ if (surface.empty)
141
+ return;
142
+ const theme = surface.theme;
143
+ const labelWidth = options.label ? stringWidth(options.label) + 1 : 0;
144
+ const valueWidth = options.text ? stringWidth(options.text) + 1 : 0;
145
+ if (labelWidth) {
146
+ surface.text(0, 0, options.label, { fg: theme.muted, bg: options.background });
147
+ }
148
+ const width = surface.width - labelWidth - valueWidth;
149
+ if (width > 0) {
150
+ drawSparkline(surface.sub(labelWidth, 0, width, 1), options.values, {
151
+ color: options.color,
152
+ colors: options.colors,
153
+ min: options.min,
154
+ max: options.max,
155
+ background: options.background,
156
+ });
157
+ }
158
+ if (valueWidth) {
159
+ surface.text(surface.width - valueWidth, 0, fit(options.text, valueWidth, "right"), {
160
+ fg: options.color ?? theme.accent,
161
+ bg: options.background,
162
+ attrs: Attr.Bold,
163
+ });
164
+ }
165
+ }
166
+ /** A segmented heat bar: discrete ticks colored along the theme ramp. */
167
+ export function drawHeatBar(surface, options) {
168
+ if (surface.empty)
169
+ return;
170
+ const theme = surface.theme;
171
+ const ratio = Math.max(0, Math.min(1, options.value));
172
+ const width = Math.min(options.width ?? surface.width, surface.width);
173
+ const filled = Math.round(ratio * width);
174
+ const ramp = gradient(theme.heat);
175
+ const ch = options.char ?? "▮";
176
+ for (let x = 0; x < width; x++) {
177
+ const on = x < filled;
178
+ surface.char(x, 0, ch, {
179
+ fg: on ? (options.color ?? ramp(width <= 1 ? ratio : x / (width - 1))) : mix(theme.background, theme.border, 0.75),
180
+ bg: options.background,
181
+ });
182
+ }
183
+ }
184
+ export { drawGauge, drawDonut };
185
+ /** Block-mode column chart. Cheaper than Braille and reads well when short. */
186
+ export function drawColumns(surface, options) {
187
+ if (surface.empty)
188
+ return;
189
+ const theme = surface.theme;
190
+ const max = options.max ?? Math.max(1, ...options.values);
191
+ const ramp = options.colors ? gradient(options.colors) : undefined;
192
+ const count = Math.min(options.values.length, surface.width);
193
+ const start = options.values.length - count;
194
+ for (let i = 0; i < count; i++) {
195
+ const ratio = Math.max(0, Math.min(1, options.values[start + i] / max));
196
+ const filled = ratio * surface.height;
197
+ const full = Math.floor(filled);
198
+ const color = ramp ? ramp(ratio) : options.color ?? theme.primary;
199
+ for (let k = 0; k < full; k++) {
200
+ surface.char(i, surface.height - 1 - k, "█", { fg: color, bg: options.background });
201
+ }
202
+ if (full < surface.height) {
203
+ const glyph = verticalGlyph(filled - full);
204
+ if (glyph !== " ")
205
+ surface.char(i, surface.height - 1 - full, glyph, { fg: color, bg: options.background });
206
+ }
207
+ }
208
+ }
209
+ //# sourceMappingURL=meters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meters.js","sourceRoot":"","sources":["../../src/widgets/meters.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ import type { Surface, Align } from "../surface.ts";
2
+ import type { Color } from "../color.ts";
3
+ export interface Column<Row = Record<string, unknown>> {
4
+ /** Property to read, or use `render` for computed cells. */
5
+ key: string;
6
+ title?: string;
7
+ width?: number | string;
8
+ min?: number;
9
+ max?: number;
10
+ align?: Align;
11
+ color?: Color | ((row: Row, value: unknown) => Color | undefined);
12
+ render?: (row: Row, index: number) => string;
13
+ }
14
+ export interface TableOptions<Row = Record<string, unknown>> {
15
+ rows: Row[];
16
+ columns: Column<Row>[];
17
+ header?: boolean;
18
+ headerColor?: Color;
19
+ /** Index of the highlighted row, or -1. */
20
+ selected?: number;
21
+ /** First visible row; combine with `selected` for scrolling lists. */
22
+ offset?: number;
23
+ zebra?: boolean;
24
+ gap?: number;
25
+ background?: Color;
26
+ rowColor?: (row: Row, index: number) => Color | undefined;
27
+ /** Show a scrollbar in the last column when rows overflow. */
28
+ scrollbar?: boolean;
29
+ onRow?: (row: Row, index: number, y: number) => void;
30
+ }
31
+ /** A dense, column-aligned table with optional selection and scrollbar. */
32
+ export declare function drawTable<Row>(surface: Surface, options: TableOptions<Row>): void;
33
+ /** A one-column scrollbar. Thumb size reflects the visible fraction. */
34
+ export declare function drawScrollbar(surface: Surface, x: number, y: number, height: number, total: number, offset: number): void;
35
+ export interface ListOptions {
36
+ items: (string | {
37
+ label: string;
38
+ color?: Color;
39
+ badge?: string;
40
+ })[];
41
+ selected?: number;
42
+ offset?: number;
43
+ background?: Color;
44
+ bullet?: string;
45
+ scrollbar?: boolean;
46
+ }
47
+ export declare function drawList(surface: Surface, options: ListOptions): void;
48
+ export interface TreeNode {
49
+ label: string;
50
+ color?: Color;
51
+ /** Right-aligned columns, e.g. CPU% and MEM% in a process tree. */
52
+ values?: {
53
+ text: string;
54
+ width: number;
55
+ color?: Color;
56
+ align?: Align;
57
+ }[];
58
+ children?: TreeNode[];
59
+ expanded?: boolean;
60
+ }
61
+ export interface TreeOptions {
62
+ nodes: TreeNode[];
63
+ selected?: number;
64
+ offset?: number;
65
+ background?: Color;
66
+ /** Draw the ├─ └─ connectors. */
67
+ guides?: boolean;
68
+ guideColor?: Color;
69
+ }
70
+ /** An indented tree with box-drawing connectors, like `pstree`. */
71
+ export declare function drawTree(surface: Surface, options: TreeOptions): void;
72
+ export interface LogEntry {
73
+ time?: string;
74
+ level?: string;
75
+ message: string;
76
+ meta?: string;
77
+ color?: Color;
78
+ }
79
+ export interface LogOptions {
80
+ entries: LogEntry[];
81
+ /** Pin to the newest entry. Default true. */
82
+ follow?: boolean;
83
+ offset?: number;
84
+ background?: Color;
85
+ levelColors?: Record<string, Color>;
86
+ timeColor?: Color;
87
+ metaColor?: Color;
88
+ wrap?: boolean;
89
+ }
90
+ /** A tailing log view with colored levels. Newest at the bottom. */
91
+ export declare function drawLog(surface: Surface, options: LogOptions): void;
92
+ //# sourceMappingURL=table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/widgets/table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAMzC,MAAM,WAAW,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACnD,4DAA4D;IAC5D,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,KAAK,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,KAAK,KAAK,GAAG,SAAS,CAAC,CAAC;IAClE,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CAC9C;AAED,MAAM,WAAW,YAAY,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACzD,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,KAAK,KAAK,GAAG,SAAS,CAAC;IAC1D,8DAA8D;IAC9D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACtD;AASD,2EAA2E;AAC3E,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CA6EjF;AAED,wEAAwE;AACxE,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,EAChB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,IAAI,CAUN;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,CAAC,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAC;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI,CAuBrE;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,mEAAmE;IACnE,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE,EAAE,CAAC;IACzE,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,iCAAiC;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,KAAK,CAAC;CACpB;AAkBD,mEAAmE;AACnE,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI,CA6CrE;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACpC,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,oEAAoE;AACpE,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI,CA4CnE"}