@profullstack/hqtui 0.3.0 → 0.5.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 (116) hide show
  1. package/dist/ansi.d.ts +10 -0
  2. package/dist/ansi.d.ts.map +1 -1
  3. package/dist/ansi.js +18 -0
  4. package/dist/ansi.js.map +1 -1
  5. package/dist/app.d.ts +25 -0
  6. package/dist/app.d.ts.map +1 -1
  7. package/dist/app.js +96 -29
  8. package/dist/app.js.map +1 -1
  9. package/dist/cli.js +1 -1
  10. package/dist/diff.d.ts +37 -1
  11. package/dist/diff.d.ts.map +1 -1
  12. package/dist/diff.js +79 -4
  13. package/dist/diff.js.map +1 -1
  14. package/dist/graphics/braille.d.ts.map +1 -1
  15. package/dist/graphics/braille.js +15 -2
  16. package/dist/graphics/braille.js.map +1 -1
  17. package/dist/graphics/canvas.d.ts +76 -0
  18. package/dist/graphics/canvas.d.ts.map +1 -0
  19. package/dist/graphics/canvas.js +110 -0
  20. package/dist/graphics/canvas.js.map +1 -0
  21. package/dist/graphics/chart.d.ts +70 -0
  22. package/dist/graphics/chart.d.ts.map +1 -0
  23. package/dist/graphics/chart.js +249 -0
  24. package/dist/graphics/chart.js.map +1 -0
  25. package/dist/graphics/index.d.ts +3 -0
  26. package/dist/graphics/index.d.ts.map +1 -1
  27. package/dist/graphics/index.js +3 -0
  28. package/dist/graphics/index.js.map +1 -1
  29. package/dist/graphics/world-data.d.ts +22 -0
  30. package/dist/graphics/world-data.d.ts.map +1 -0
  31. package/dist/graphics/world-data.js +1300 -0
  32. package/dist/graphics/world-data.js.map +1 -0
  33. package/dist/graphics/world.d.ts +70 -0
  34. package/dist/graphics/world.d.ts.map +1 -0
  35. package/dist/graphics/world.js +137 -0
  36. package/dist/graphics/world.js.map +1 -0
  37. package/dist/index.d.ts +6 -5
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +5 -4
  40. package/dist/index.js.map +1 -1
  41. package/dist/input.d.ts +7 -0
  42. package/dist/input.d.ts.map +1 -1
  43. package/dist/input.js +1 -0
  44. package/dist/input.js.map +1 -1
  45. package/dist/layout.d.ts +21 -1
  46. package/dist/layout.d.ts.map +1 -1
  47. package/dist/layout.js +54 -4
  48. package/dist/layout.js.map +1 -1
  49. package/dist/richtext.d.ts +8 -0
  50. package/dist/richtext.d.ts.map +1 -1
  51. package/dist/richtext.js +29 -1
  52. package/dist/richtext.js.map +1 -1
  53. package/dist/surface.d.ts +28 -0
  54. package/dist/surface.d.ts.map +1 -1
  55. package/dist/surface.js +83 -15
  56. package/dist/surface.js.map +1 -1
  57. package/dist/terminal.d.ts +81 -0
  58. package/dist/terminal.d.ts.map +1 -1
  59. package/dist/terminal.js +131 -4
  60. package/dist/terminal.js.map +1 -1
  61. package/dist/testing.d.ts +12 -0
  62. package/dist/testing.d.ts.map +1 -1
  63. package/dist/testing.js +10 -1
  64. package/dist/testing.js.map +1 -1
  65. package/dist/ui.d.ts +152 -3
  66. package/dist/ui.d.ts.map +1 -1
  67. package/dist/ui.js +210 -15
  68. package/dist/ui.js.map +1 -1
  69. package/dist/unicode.d.ts +9 -0
  70. package/dist/unicode.d.ts.map +1 -1
  71. package/dist/unicode.js +25 -0
  72. package/dist/unicode.js.map +1 -1
  73. package/dist/widgets/calendar.d.ts +67 -0
  74. package/dist/widgets/calendar.d.ts.map +1 -0
  75. package/dist/widgets/calendar.js +118 -0
  76. package/dist/widgets/calendar.js.map +1 -0
  77. package/dist/widgets/chart.d.ts +24 -0
  78. package/dist/widgets/chart.d.ts.map +1 -0
  79. package/dist/widgets/chart.js +80 -0
  80. package/dist/widgets/chart.js.map +1 -0
  81. package/dist/widgets/controls.d.ts +22 -0
  82. package/dist/widgets/controls.d.ts.map +1 -1
  83. package/dist/widgets/controls.js +20 -7
  84. package/dist/widgets/controls.js.map +1 -1
  85. package/dist/widgets/index.d.ts +6 -0
  86. package/dist/widgets/index.d.ts.map +1 -1
  87. package/dist/widgets/index.js +6 -0
  88. package/dist/widgets/index.js.map +1 -1
  89. package/dist/widgets/meters.d.ts.map +1 -1
  90. package/dist/widgets/meters.js +11 -1
  91. package/dist/widgets/meters.js.map +1 -1
  92. package/dist/widgets/scrollbar.d.ts +66 -0
  93. package/dist/widgets/scrollbar.d.ts.map +1 -0
  94. package/dist/widgets/scrollbar.js +89 -0
  95. package/dist/widgets/scrollbar.js.map +1 -0
  96. package/dist/widgets/shadow.d.ts +42 -0
  97. package/dist/widgets/shadow.d.ts.map +1 -0
  98. package/dist/widgets/shadow.js +73 -0
  99. package/dist/widgets/shadow.js.map +1 -0
  100. package/dist/widgets/surface.d.ts +33 -0
  101. package/dist/widgets/surface.d.ts.map +1 -0
  102. package/dist/widgets/surface.js +37 -0
  103. package/dist/widgets/surface.js.map +1 -0
  104. package/dist/widgets/table.d.ts +1 -2
  105. package/dist/widgets/table.d.ts.map +1 -1
  106. package/dist/widgets/table.js +4 -12
  107. package/dist/widgets/table.js.map +1 -1
  108. package/dist/widgets/text.d.ts +26 -2
  109. package/dist/widgets/text.d.ts.map +1 -1
  110. package/dist/widgets/text.js +30 -8
  111. package/dist/widgets/text.js.map +1 -1
  112. package/dist/widgets/world.d.ts +32 -0
  113. package/dist/widgets/world.d.ts.map +1 -0
  114. package/dist/widgets/world.js +31 -0
  115. package/dist/widgets/world.js.map +1 -0
  116. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  import { Attr } from "../buffer.js";
2
2
  import { mix } from "../color.js";
3
- import { fit, stringWidth, truncate, wrap } from "../unicode.js";
4
- import { fitSpans, isRich, toSpanLines, wrapRich } from "../richtext.js";
3
+ import { dropColumns, fit, stringWidth, truncate, wrap } from "../unicode.js";
4
+ import { dropSpanColumns, fitSpans, isRich, toSpanLines, wrapRich, } from "../richtext.js";
5
5
  import { elevate } from "../theme.js";
6
6
  function attrsOf(o) {
7
7
  let a = o.attrs ?? 0;
@@ -27,18 +27,28 @@ export function drawText(surface, content, options = {}) {
27
27
  // the span code. The two agree — richtext.test.ts holds them to the same
28
28
  // columns over a corpus — but "agree" and "emit identical cells" are not the
29
29
  // same claim, and every committed fixture depends on the second one.
30
+ // Both offsets are clamped to zero: a negative scroll would otherwise read
31
+ // as "start before the beginning" and silently drop the first rows.
32
+ const scroll = Math.max(0, Math.floor(options.scroll ?? 0));
33
+ const scrollX = Math.max(0, Math.floor(options.scrollX ?? 0));
30
34
  if (!isRich(content)) {
31
- const lines = options.wrap ? wrap(content, surface.width) : content.split("\n");
35
+ const wrapped = options.wrap ? wrap(content, surface.width) : content.split("\n");
36
+ const lines = scroll > 0 ? wrapped.slice(scroll) : wrapped;
32
37
  for (let i = 0; i < lines.length && i < surface.height; i++) {
33
- surface.text(0, i, fit(truncate(lines[i], surface.width), surface.width, options.align ?? "left"), style);
38
+ const line = scrollX > 0 ? dropColumns(lines[i], scrollX) : lines[i];
39
+ surface.text(0, i, fit(truncate(line, surface.width), surface.width, options.align ?? "left"), style);
34
40
  }
35
41
  return;
36
42
  }
37
- const lines = options.wrap
43
+ const wrapped = options.wrap
38
44
  ? wrapRich(content, surface.width)
39
45
  : toSpanLines(content);
46
+ const lines = scroll > 0 ? wrapped.slice(scroll) : wrapped;
40
47
  for (let i = 0; i < lines.length && i < surface.height; i++) {
41
- surface.spans(0, i, fitSpans(lines[i], surface.width, options.align ?? "left"), style);
48
+ const line = scrollX > 0
49
+ ? dropSpanColumns(lines[i], scrollX)
50
+ : lines[i];
51
+ surface.spans(0, i, fitSpans(line, surface.width, options.align ?? "left"), style);
42
52
  }
43
53
  }
44
54
  export function drawBadge(surface, options) {
@@ -98,19 +108,27 @@ export function drawDivider(surface, options = {}) {
98
108
  surface.text(Math.max(0, x), 0, truncate(label, surface.width), { fg: theme.muted });
99
109
  }
100
110
  }
101
- /** The F1/F2/F10 bar along the bottom of every serious TUI. */
111
+ /**
112
+ * The F1/F2/F10 bar along the bottom of every serious TUI.
113
+ *
114
+ * Returns the cells each item took, in the order they were drawn, so the
115
+ * caller can make them clickable: a key cap that says `F1 Help` and does
116
+ * nothing when clicked is a promise the bar does not keep.
117
+ */
102
118
  export function drawStatusBar(surface, options) {
103
119
  if (surface.empty)
104
- return;
120
+ return [];
105
121
  const theme = surface.theme;
106
122
  const bg = options.background ?? elevate(theme, 0.04);
107
123
  surface.fill({ bg });
124
+ const spans = [];
108
125
  let x = 1;
109
126
  const drawItems = (items, startX) => {
110
127
  let cx = startX;
111
128
  for (const item of items) {
112
129
  if (cx >= surface.width)
113
130
  break;
131
+ const startedAt = cx;
114
132
  if (item.key) {
115
133
  const cap = options.keyStyle === "plain" ? item.key : item.key;
116
134
  const capStyle = options.keyStyle === "plain"
@@ -124,6 +142,9 @@ export function drawStatusBar(surface, options) {
124
142
  bg,
125
143
  attrs: item.active ? Attr.Bold : 0,
126
144
  });
145
+ // The span is the cap and the label, not the gap after them: two items
146
+ // side by side must not both answer a click on the space between.
147
+ spans.push({ item, x: startedAt, width: Math.max(0, Math.min(cx, surface.width) - startedAt) });
127
148
  cx += surface.text(cx, 0, " ", { bg });
128
149
  }
129
150
  return cx;
@@ -133,5 +154,6 @@ export function drawStatusBar(surface, options) {
133
154
  const width = options.right.reduce((a, i) => a + stringWidth(i.label) + (i.key ? stringWidth(i.key) + 1 : 0) + 2, 0);
134
155
  drawItems(options.right, Math.max(x, surface.width - width - 1));
135
156
  }
157
+ return spans;
136
158
  }
137
159
  //# sourceMappingURL=text.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/widgets/text.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/widgets/text.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * A world map you can click.
3
+ *
4
+ * The drawing is the canvas doing what it already does -- polylines in the
5
+ * caller's own coordinates, which for a map are degrees. What this adds is the
6
+ * other direction: turning a click back into a country.
7
+ */
8
+ import type { Surface } from "../surface.ts";
9
+ import type { Color } from "../color.ts";
10
+ import type { Bounds } from "../graphics/canvas.ts";
11
+ import { type CountryOutline } from "../graphics/world.ts";
12
+ export interface WorldMapOptions {
13
+ /** The window on the globe. Defaults to all of it. */
14
+ x?: Bounds;
15
+ y?: Bounds;
16
+ /** Coastline colour. */
17
+ color?: Color;
18
+ /** Countries to pick out, by name or ISO code. */
19
+ highlight?: readonly string[];
20
+ highlightColor?: Color;
21
+ background?: Color;
22
+ grid?: boolean;
23
+ }
24
+ export declare function drawWorldMap(surface: Surface, options?: WorldMapOptions): void;
25
+ /**
26
+ * The country under a cell of a map drawn with these bounds.
27
+ *
28
+ * Exposed so a caller can answer a hover as well as a click, and so the
29
+ * arithmetic that has to agree with the drawing lives in one place.
30
+ */
31
+ export declare function countryAtCell(column: number, row: number, width: number, height: number, options?: WorldMapOptions): CountryOutline | undefined;
32
+ //# sourceMappingURL=world.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"world.d.ts","sourceRoot":"","sources":["../../src/widgets/world.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EACL,KAAK,cAAc,EACpB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,eAAe;IAC9B,sDAAsD;IACtD,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,wBAAwB;IACxB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,kDAAkD;IAClD,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,cAAc,CAAC,EAAE,KAAK,CAAC;IACvB,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,eAAoB,GAAG,IAAI,CAclF;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,eAAoB,GAC5B,cAAc,GAAG,SAAS,CAI5B"}
@@ -0,0 +1,31 @@
1
+ import { drawCanvas } from "../graphics/canvas.js";
2
+ import { WORLD_X, WORLD_Y, countryAt, degreesAt, worldShapes, } from "../graphics/world.js";
3
+ export function drawWorldMap(surface, options = {}) {
4
+ if (surface.empty)
5
+ return;
6
+ const theme = surface.theme;
7
+ drawCanvas(surface, {
8
+ shapes: worldShapes({
9
+ color: options.color ?? theme.border,
10
+ highlight: options.highlight,
11
+ highlightColor: options.highlightColor ?? theme.accent,
12
+ }),
13
+ x: options.x ?? WORLD_X,
14
+ y: options.y ?? WORLD_Y,
15
+ background: options.background,
16
+ grid: options.grid,
17
+ });
18
+ }
19
+ /**
20
+ * The country under a cell of a map drawn with these bounds.
21
+ *
22
+ * Exposed so a caller can answer a hover as well as a click, and so the
23
+ * arithmetic that has to agree with the drawing lives in one place.
24
+ */
25
+ export function countryAtCell(column, row, width, height, options = {}) {
26
+ const at = degreesAt(column, row, width, height, options.x ?? WORLD_X, options.y ?? WORLD_Y);
27
+ if (!at)
28
+ return undefined;
29
+ return countryAt(at.lon, at.lat);
30
+ }
31
+ //# sourceMappingURL=world.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"world.js","sourceRoot":"","sources":["../../src/widgets/world.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EACgB,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,GACzE,MAAM,sBAAsB,CAAC;AAe9B,MAAM,UAAU,YAAY,CAAC,OAAgB,EAAE,OAAO,GAAoB,EAAE;IAC1E,IAAI,OAAO,CAAC,KAAK;QAAE,OAAO;IAC1B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC5B,UAAU,CAAC,OAAO,EAAE;QAClB,MAAM,EAAE,WAAW,CAAC;YAClB,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM;YACpC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,KAAK,CAAC,MAAM;SACvD,CAAC;QACF,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,OAAO;QACvB,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,OAAO;QACvB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAC3B,MAAc,EACd,GAAW,EACX,KAAa,EACb,MAAc,EACd,OAAO,GAAoB,EAAE;IAE7B,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC;IAC7F,IAAI,CAAC,EAAE;QAAE,OAAO,SAAS,CAAC;IAC1B,OAAO,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;AACnC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@profullstack/hqtui",
3
- "version": "0.3.0",
3
+ "version": "0.5.0",
4
4
  "description": "High Quality Terminal UI for TypeScript. btop-grade dashboards with a one-import API, dark by default, zero runtime dependencies.",
5
5
  "license": "MIT",
6
6
  "type": "module",