@effect-tui/core 0.1.1 → 0.1.5
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 +31 -11
- package/dist/ansi.d.ts +127 -32
- package/dist/ansi.d.ts.map +1 -1
- package/dist/ansi.js +159 -37
- package/dist/ansi.js.map +1 -1
- package/dist/colors.d.ts +139 -0
- package/dist/colors.d.ts.map +1 -0
- package/dist/colors.js +339 -0
- package/dist/colors.js.map +1 -0
- package/dist/index.d.ts +6 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -11
- package/dist/index.js.map +1 -1
- package/dist/keys.d.ts +21 -0
- package/dist/keys.d.ts.map +1 -1
- package/dist/keys.js +199 -58
- package/dist/keys.js.map +1 -1
- package/dist/layout/axis-helpers.d.ts +19 -0
- package/dist/layout/axis-helpers.d.ts.map +1 -0
- package/dist/layout/axis-helpers.js +19 -0
- package/dist/layout/axis-helpers.js.map +1 -0
- package/dist/output.d.ts +59 -0
- package/dist/output.d.ts.map +1 -0
- package/dist/output.js +142 -0
- package/dist/output.js.map +1 -0
- package/dist/render/buffer.d.ts.map +1 -1
- package/dist/render/buffer.js +6 -25
- package/dist/render/buffer.js.map +1 -1
- package/dist/render/graphemes.d.ts +15 -0
- package/dist/render/graphemes.d.ts.map +1 -0
- package/dist/render/graphemes.js +28 -0
- package/dist/render/graphemes.js.map +1 -0
- package/dist/render/measure.d.ts +1 -0
- package/dist/render/measure.d.ts.map +1 -1
- package/dist/render/measure.js +14 -36
- package/dist/render/measure.js.map +1 -1
- package/dist/render/palette.d.ts.map +1 -1
- package/dist/render/palette.js +26 -1
- package/dist/render/palette.js.map +1 -1
- package/dist/render/segmenter.d.ts +8 -0
- package/dist/render/segmenter.d.ts.map +1 -0
- package/dist/render/segmenter.js +23 -0
- package/dist/render/segmenter.js.map +1 -0
- package/dist/render/surface.d.ts +6 -32
- package/dist/render/surface.d.ts.map +1 -1
- package/dist/render/surface.js +11 -80
- package/dist/render/surface.js.map +1 -1
- package/dist/runtime/backend_node.d.ts.map +1 -1
- package/dist/runtime/backend_node.js.map +1 -1
- package/dist/tailwind-colors.d.ts +291 -0
- package/dist/tailwind-colors.d.ts.map +1 -0
- package/dist/tailwind-colors.js +291 -0
- package/dist/tailwind-colors.js.map +1 -0
- package/dist/types.d.ts +15 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/package.json +55 -55
- package/src/ansi.ts +201 -73
- package/src/colors.ts +468 -0
- package/src/index.ts +28 -14
- package/src/keys.ts +467 -287
- package/src/layout/axis-helpers.ts +33 -0
- package/src/output.ts +175 -0
- package/src/render/buffer.ts +161 -184
- package/src/render/graphemes.ts +34 -0
- package/src/render/measure.ts +15 -38
- package/src/render/palette.ts +98 -77
- package/src/render/segmenter.ts +27 -0
- package/src/render/surface.ts +139 -225
- package/src/runtime/backend_node.ts +71 -71
- package/src/tailwind-colors.ts +295 -0
- package/src/types.ts +18 -0
- package/dist/anim.d.ts +0 -4
- package/dist/anim.d.ts.map +0 -1
- package/dist/anim.js +0 -5
- package/dist/anim.js.map +0 -1
- package/dist/layout/linearStack.d.ts +0 -17
- package/dist/layout/linearStack.d.ts.map +0 -1
- package/dist/layout/linearStack.js +0 -86
- package/dist/layout/linearStack.js.map +0 -1
- package/dist/motion-value.d.ts +0 -58
- package/dist/motion-value.d.ts.map +0 -1
- package/dist/motion-value.js +0 -250
- package/dist/motion-value.js.map +0 -1
- package/dist/present/display.d.ts +0 -58
- package/dist/present/display.d.ts.map +0 -1
- package/dist/present/display.js +0 -168
- package/dist/present/display.js.map +0 -1
- package/dist/present/writers/fullscreen.d.ts +0 -19
- package/dist/present/writers/fullscreen.d.ts.map +0 -1
- package/dist/present/writers/fullscreen.js +0 -55
- package/dist/present/writers/fullscreen.js.map +0 -1
- package/dist/present/writers/inline.d.ts +0 -20
- package/dist/present/writers/inline.d.ts.map +0 -1
- package/dist/present/writers/inline.js +0 -92
- package/dist/present/writers/inline.js.map +0 -1
- package/dist/render/color-utils.d.ts +0 -18
- package/dist/render/color-utils.d.ts.map +0 -1
- package/dist/render/color-utils.js +0 -58
- package/dist/render/color-utils.js.map +0 -1
- package/dist/render/diff.d.ts +0 -30
- package/dist/render/diff.d.ts.map +0 -1
- package/dist/render/diff.js +0 -83
- package/dist/render/diff.js.map +0 -1
- package/dist/spring-physics.d.ts +0 -36
- package/dist/spring-physics.d.ts.map +0 -1
- package/dist/spring-physics.js +0 -113
- package/dist/spring-physics.js.map +0 -1
- package/dist/spring.d.ts +0 -73
- package/dist/spring.d.ts.map +0 -1
- package/dist/spring.js +0 -136
- package/dist/spring.js.map +0 -1
- package/dist/ui/containers/canvas.d.ts +0 -13
- package/dist/ui/containers/canvas.d.ts.map +0 -1
- package/dist/ui/containers/canvas.js +0 -16
- package/dist/ui/containers/canvas.js.map +0 -1
- package/dist/ui/containers/geometry-reader.d.ts +0 -17
- package/dist/ui/containers/geometry-reader.d.ts.map +0 -1
- package/dist/ui/containers/geometry-reader.js +0 -24
- package/dist/ui/containers/geometry-reader.js.map +0 -1
- package/dist/ui/containers/hstack.d.ts +0 -12
- package/dist/ui/containers/hstack.d.ts.map +0 -1
- package/dist/ui/containers/hstack.js +0 -28
- package/dist/ui/containers/hstack.js.map +0 -1
- package/dist/ui/containers/scroll.d.ts +0 -28
- package/dist/ui/containers/scroll.d.ts.map +0 -1
- package/dist/ui/containers/scroll.js +0 -97
- package/dist/ui/containers/scroll.js.map +0 -1
- package/dist/ui/containers/shared.d.ts +0 -12
- package/dist/ui/containers/shared.d.ts.map +0 -1
- package/dist/ui/containers/shared.js +0 -19
- package/dist/ui/containers/shared.js.map +0 -1
- package/dist/ui/containers/vstack.d.ts +0 -12
- package/dist/ui/containers/vstack.d.ts.map +0 -1
- package/dist/ui/containers/vstack.js +0 -28
- package/dist/ui/containers/vstack.js.map +0 -1
- package/dist/ui/containers/zstack.d.ts +0 -14
- package/dist/ui/containers/zstack.d.ts.map +0 -1
- package/dist/ui/containers/zstack.js +0 -36
- package/dist/ui/containers/zstack.js.map +0 -1
- package/dist/ui/core/geometry-store.d.ts +0 -22
- package/dist/ui/core/geometry-store.d.ts.map +0 -1
- package/dist/ui/core/geometry-store.js +0 -29
- package/dist/ui/core/geometry-store.js.map +0 -1
- package/dist/ui/core/geometry.d.ts +0 -34
- package/dist/ui/core/geometry.d.ts.map +0 -1
- package/dist/ui/core/geometry.js +0 -14
- package/dist/ui/core/geometry.js.map +0 -1
- package/dist/ui/core/view.d.ts +0 -25
- package/dist/ui/core/view.d.ts.map +0 -1
- package/dist/ui/core/view.js +0 -34
- package/dist/ui/core/view.js.map +0 -1
- package/dist/ui/index.d.ts +0 -44
- package/dist/ui/index.d.ts.map +0 -1
- package/dist/ui/index.js +0 -39
- package/dist/ui/index.js.map +0 -1
- package/dist/ui/inlinetext.d.ts +0 -24
- package/dist/ui/inlinetext.d.ts.map +0 -1
- package/dist/ui/inlinetext.js +0 -131
- package/dist/ui/inlinetext.js.map +0 -1
- package/dist/ui/install.d.ts +0 -22
- package/dist/ui/install.d.ts.map +0 -1
- package/dist/ui/install.js +0 -66
- package/dist/ui/install.js.map +0 -1
- package/dist/ui/markdown.d.ts +0 -40
- package/dist/ui/markdown.d.ts.map +0 -1
- package/dist/ui/markdown.js +0 -351
- package/dist/ui/markdown.js.map +0 -1
- package/dist/ui/modifiers/border.d.ts +0 -33
- package/dist/ui/modifiers/border.d.ts.map +0 -1
- package/dist/ui/modifiers/border.js +0 -82
- package/dist/ui/modifiers/border.js.map +0 -1
- package/dist/ui/modifiers/fill.d.ts +0 -14
- package/dist/ui/modifiers/fill.d.ts.map +0 -1
- package/dist/ui/modifiers/fill.js +0 -25
- package/dist/ui/modifiers/fill.js.map +0 -1
- package/dist/ui/modifiers/frame.d.ts +0 -23
- package/dist/ui/modifiers/frame.d.ts.map +0 -1
- package/dist/ui/modifiers/frame.js +0 -54
- package/dist/ui/modifiers/frame.js.map +0 -1
- package/dist/ui/modifiers/offset.d.ts +0 -15
- package/dist/ui/modifiers/offset.d.ts.map +0 -1
- package/dist/ui/modifiers/offset.js +0 -21
- package/dist/ui/modifiers/offset.js.map +0 -1
- package/dist/ui/modifiers/opacity.d.ts +0 -15
- package/dist/ui/modifiers/opacity.d.ts.map +0 -1
- package/dist/ui/modifiers/opacity.js +0 -95
- package/dist/ui/modifiers/opacity.js.map +0 -1
- package/dist/ui/modifiers/padding.d.ts +0 -20
- package/dist/ui/modifiers/padding.d.ts.map +0 -1
- package/dist/ui/modifiers/padding.js +0 -36
- package/dist/ui/modifiers/padding.js.map +0 -1
- package/dist/ui/modifiers/styled.d.ts +0 -14
- package/dist/ui/modifiers/styled.d.ts.map +0 -1
- package/dist/ui/modifiers/styled.js +0 -26
- package/dist/ui/modifiers/styled.js.map +0 -1
- package/dist/ui/primitives/rectangle.d.ts +0 -15
- package/dist/ui/primitives/rectangle.d.ts.map +0 -1
- package/dist/ui/primitives/rectangle.js +0 -23
- package/dist/ui/primitives/rectangle.js.map +0 -1
- package/dist/ui/primitives/spacer.d.ts +0 -13
- package/dist/ui/primitives/spacer.d.ts.map +0 -1
- package/dist/ui/primitives/spacer.js +0 -16
- package/dist/ui/primitives/spacer.js.map +0 -1
- package/dist/ui/primitives/text.d.ts +0 -15
- package/dist/ui/primitives/text.d.ts.map +0 -1
- package/dist/ui/primitives/text.js +0 -79
- package/dist/ui/primitives/text.js.map +0 -1
- package/dist/ui/primitives/wrapped-text.d.ts +0 -30
- package/dist/ui/primitives/wrapped-text.d.ts.map +0 -1
- package/dist/ui/primitives/wrapped-text.js +0 -117
- package/dist/ui/primitives/wrapped-text.js.map +0 -1
- package/dist/ui/shinytext.d.ts +0 -66
- package/dist/ui/shinytext.d.ts.map +0 -1
- package/dist/ui/shinytext.js +0 -99
- package/dist/ui/shinytext.js.map +0 -1
- package/dist/ui/text/layout.d.ts +0 -35
- package/dist/ui/text/layout.d.ts.map +0 -1
- package/dist/ui/text/layout.js +0 -102
- package/dist/ui/text/layout.js.map +0 -1
- package/dist/ui/textinput.d.ts +0 -140
- package/dist/ui/textinput.d.ts.map +0 -1
- package/dist/ui/textinput.js +0 -402
- package/dist/ui/textinput.js.map +0 -1
- package/dist/ui/view-constructors.d.ts +0 -72
- package/dist/ui/view-constructors.d.ts.map +0 -1
- package/dist/ui/view-constructors.js +0 -74
- package/dist/ui/view-constructors.js.map +0 -1
- package/src/anim.ts +0 -5
- package/src/layout/linearStack.ts +0 -115
- package/src/motion-value.ts +0 -335
- package/src/present/display.ts +0 -206
- package/src/present/writers/fullscreen.ts +0 -58
- package/src/present/writers/inline.ts +0 -101
- package/src/render/color-utils.ts +0 -60
- package/src/render/diff.ts +0 -95
- package/src/spring-physics.ts +0 -151
- package/src/spring.ts +0 -234
- package/src/ui/__snapshots__/wrappedtext.test.ts.snap +0 -57
- package/src/ui/containers/canvas.ts +0 -18
- package/src/ui/containers/geometry-reader.ts +0 -32
- package/src/ui/containers/hstack.ts +0 -33
- package/src/ui/containers/scroll.ts +0 -106
- package/src/ui/containers/shared.ts +0 -27
- package/src/ui/containers/vstack.ts +0 -34
- package/src/ui/containers/zstack.ts +0 -37
- package/src/ui/core/geometry-store.ts +0 -42
- package/src/ui/core/geometry.ts +0 -30
- package/src/ui/core/view.ts +0 -49
- package/src/ui/index.ts +0 -84
- package/src/ui/inlinetext.ts +0 -135
- package/src/ui/install.ts +0 -110
- package/src/ui/markdown.test.ts +0 -74
- package/src/ui/markdown.ts +0 -388
- package/src/ui/modifiers/border.ts +0 -100
- package/src/ui/modifiers/fill.ts +0 -28
- package/src/ui/modifiers/frame.ts +0 -74
- package/src/ui/modifiers/offset.ts +0 -23
- package/src/ui/modifiers/opacity.ts +0 -93
- package/src/ui/modifiers/padding.ts +0 -53
- package/src/ui/modifiers/styled.ts +0 -31
- package/src/ui/primitives/rectangle.ts +0 -25
- package/src/ui/primitives/spacer.ts +0 -18
- package/src/ui/primitives/text.ts +0 -85
- package/src/ui/primitives/wrapped-text.ts +0 -131
- package/src/ui/shinytext.ts +0 -159
- package/src/ui/text/layout.ts +0 -119
- package/src/ui/textinput.ts +0 -496
- package/src/ui/view-constructors.ts +0 -96
- package/src/ui/wrappedtext.test.ts +0 -138
package/dist/ui/markdown.js
DELETED
|
@@ -1,351 +0,0 @@
|
|
|
1
|
-
import { Colors, mergeStyle } from "../render/surface.js";
|
|
2
|
-
import { View } from "./core/view.js";
|
|
3
|
-
import { VStack } from "./containers/vstack.js";
|
|
4
|
-
import { WrappedText } from "./primitives/wrapped-text.js";
|
|
5
|
-
import { InlineText } from "./inlinetext.js";
|
|
6
|
-
/** Minimal Markdown renderer for terminal UI: block-level only. */
|
|
7
|
-
export class Markdown extends View {
|
|
8
|
-
text;
|
|
9
|
-
opts;
|
|
10
|
-
constructor(text, opts = {}) {
|
|
11
|
-
super();
|
|
12
|
-
this.text = text;
|
|
13
|
-
this.opts = opts;
|
|
14
|
-
}
|
|
15
|
-
parseBlocks() {
|
|
16
|
-
const lines = this.text.replace(/\r\n?/g, "\n").split("\n");
|
|
17
|
-
const blocks = [];
|
|
18
|
-
let i = 0;
|
|
19
|
-
const isBlank = (s) => /^\s*$/.test(s);
|
|
20
|
-
while (i < lines.length) {
|
|
21
|
-
const line = lines[i];
|
|
22
|
-
if (isBlank(line)) {
|
|
23
|
-
i++;
|
|
24
|
-
continue;
|
|
25
|
-
}
|
|
26
|
-
// Code fence
|
|
27
|
-
const fence = line.match(/^```(?:(\w+))?\s*$/);
|
|
28
|
-
if (fence) {
|
|
29
|
-
const lang = fence[1];
|
|
30
|
-
const buf = [];
|
|
31
|
-
i++;
|
|
32
|
-
while (i < lines.length && !/^```\s*$/.test(lines[i])) {
|
|
33
|
-
buf.push(lines[i]);
|
|
34
|
-
i++;
|
|
35
|
-
}
|
|
36
|
-
// skip closing fence if present
|
|
37
|
-
if (i < lines.length && /^```\s*$/.test(lines[i]))
|
|
38
|
-
i++;
|
|
39
|
-
blocks.push({ type: "code", lang, text: buf.join("\n") });
|
|
40
|
-
continue;
|
|
41
|
-
}
|
|
42
|
-
// Heading
|
|
43
|
-
const h = line.match(/^(#{1,6})\s+(.*)$/);
|
|
44
|
-
if (h) {
|
|
45
|
-
blocks.push({ type: "heading", level: h[1].length, text: h[2] });
|
|
46
|
-
i++;
|
|
47
|
-
continue;
|
|
48
|
-
}
|
|
49
|
-
// Blockquote (consume contiguous ">" lines)
|
|
50
|
-
if (/^>\s?/.test(line)) {
|
|
51
|
-
const buf = [];
|
|
52
|
-
while (i < lines.length && /^>\s?/.test(lines[i])) {
|
|
53
|
-
buf.push(lines[i].replace(/^>\s?/, ""));
|
|
54
|
-
i++;
|
|
55
|
-
}
|
|
56
|
-
blocks.push({ type: "quote", text: buf.join("\n") });
|
|
57
|
-
continue;
|
|
58
|
-
}
|
|
59
|
-
// List (unordered or ordered) — support -,*,+, • and 1., 1)
|
|
60
|
-
let m = line.match(/^\s*([-*+]|•)\s+(.*)$/);
|
|
61
|
-
let ordered = false;
|
|
62
|
-
if (!m) {
|
|
63
|
-
const om = line.match(/^\s*(\d+)[.)]\s+(.*)$/);
|
|
64
|
-
if (om) {
|
|
65
|
-
ordered = true;
|
|
66
|
-
m = [om[0], om[1], om[2]];
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
if (m) {
|
|
70
|
-
const items = [];
|
|
71
|
-
while (i < lines.length) {
|
|
72
|
-
const l = lines[i];
|
|
73
|
-
const um = l.match(/^\s*([-*+]|•)\s+(.*)$/);
|
|
74
|
-
const om = l.match(/^\s*(\d+)[.)]\s+(.*)$/);
|
|
75
|
-
if ((ordered && om) || (!ordered && um)) {
|
|
76
|
-
items.push((ordered ? om?.[2] : um?.[2])?.trimEnd() ?? "");
|
|
77
|
-
i++;
|
|
78
|
-
}
|
|
79
|
-
else if (isBlank(l)) {
|
|
80
|
-
i++;
|
|
81
|
-
break;
|
|
82
|
-
}
|
|
83
|
-
else {
|
|
84
|
-
break;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
blocks.push({ type: "list", ordered, items });
|
|
88
|
-
continue;
|
|
89
|
-
}
|
|
90
|
-
// Paragraph — consume until blank or next block
|
|
91
|
-
const buf = [line];
|
|
92
|
-
i++;
|
|
93
|
-
while (i < lines.length) {
|
|
94
|
-
const l = lines[i];
|
|
95
|
-
if (isBlank(l)) {
|
|
96
|
-
i++;
|
|
97
|
-
break;
|
|
98
|
-
}
|
|
99
|
-
if (/^```/.test(l) ||
|
|
100
|
-
/^(#{1,6})\s+/.test(l) ||
|
|
101
|
-
/^>\s?/.test(l) ||
|
|
102
|
-
/^\s*([-*+])\s+/.test(l) ||
|
|
103
|
-
/^\s*\d+\.\s+/.test(l)) {
|
|
104
|
-
break;
|
|
105
|
-
}
|
|
106
|
-
buf.push(l);
|
|
107
|
-
i++;
|
|
108
|
-
}
|
|
109
|
-
blocks.push({ type: "paragraph", text: buf.join("\n") });
|
|
110
|
-
}
|
|
111
|
-
return blocks;
|
|
112
|
-
}
|
|
113
|
-
parseInline(text, base) {
|
|
114
|
-
// Recursive descent for bold/italic/strike/link; code spans take precedence and are not parsed inside.
|
|
115
|
-
const frags = [];
|
|
116
|
-
const push = (t, style) => {
|
|
117
|
-
if (t.length === 0)
|
|
118
|
-
return;
|
|
119
|
-
frags.push({ text: t, style });
|
|
120
|
-
};
|
|
121
|
-
const walk = (s, inherited) => {
|
|
122
|
-
let i = 0;
|
|
123
|
-
while (i < s.length) {
|
|
124
|
-
// Find nearest marker
|
|
125
|
-
const idxs = [];
|
|
126
|
-
const find = (re, kind) => {
|
|
127
|
-
const m = re.exec(s.slice(i));
|
|
128
|
-
if (m && m.index >= 0)
|
|
129
|
-
idxs.push({ i: i + m.index, kind });
|
|
130
|
-
};
|
|
131
|
-
// Prioritize code and link first
|
|
132
|
-
find(/`/, "code");
|
|
133
|
-
find(/\[/, "link");
|
|
134
|
-
find(/\*\*|__/, "bold");
|
|
135
|
-
find(/\*|_/, "italic");
|
|
136
|
-
find(/~~/, "strike");
|
|
137
|
-
if (idxs.length === 0) {
|
|
138
|
-
push(s.slice(i), inherited);
|
|
139
|
-
break;
|
|
140
|
-
}
|
|
141
|
-
idxs.sort((a, b) => a.i - b.i);
|
|
142
|
-
const next = idxs[0];
|
|
143
|
-
if (next.i > i)
|
|
144
|
-
push(s.slice(i, next.i), inherited);
|
|
145
|
-
i = next.i;
|
|
146
|
-
switch (next.kind) {
|
|
147
|
-
case "code": {
|
|
148
|
-
const j = s.indexOf("`", i + 1);
|
|
149
|
-
if (j === -1) {
|
|
150
|
-
push(s.slice(i), inherited);
|
|
151
|
-
i = s.length;
|
|
152
|
-
}
|
|
153
|
-
else {
|
|
154
|
-
const inner = s.slice(i + 1, j);
|
|
155
|
-
push(inner, mergeStyle(inherited, { bg: Colors.gray(2), fg: Colors.gray(15) }));
|
|
156
|
-
i = j + 1;
|
|
157
|
-
}
|
|
158
|
-
break;
|
|
159
|
-
}
|
|
160
|
-
case "link": {
|
|
161
|
-
const close = s.indexOf("]", i + 1);
|
|
162
|
-
if (close !== -1 && s[close + 1] === "(") {
|
|
163
|
-
const end = s.indexOf(")", close + 2);
|
|
164
|
-
if (end !== -1) {
|
|
165
|
-
const label = s.slice(i + 1, close);
|
|
166
|
-
const url = s.slice(close + 2, end);
|
|
167
|
-
// Style label as link; append a thin gray url in parentheses
|
|
168
|
-
const linkStyle = mergeStyle(inherited, { fg: Colors.brightBlue, underline: true });
|
|
169
|
-
walk(label, linkStyle);
|
|
170
|
-
push(` (${url})`, mergeStyle(inherited, { fg: Colors.gray(12), underline: false }));
|
|
171
|
-
i = end + 1;
|
|
172
|
-
break;
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
// Fallback: treat '[' as literal
|
|
176
|
-
push("[", inherited);
|
|
177
|
-
i += 1;
|
|
178
|
-
break;
|
|
179
|
-
}
|
|
180
|
-
case "bold": {
|
|
181
|
-
const marker = s.slice(i, i + 2);
|
|
182
|
-
const j = s.indexOf(marker, i + 2);
|
|
183
|
-
if (j === -1) {
|
|
184
|
-
push(s.slice(i), inherited);
|
|
185
|
-
i = s.length;
|
|
186
|
-
}
|
|
187
|
-
else {
|
|
188
|
-
const inner = s.slice(i + 2, j);
|
|
189
|
-
walk(inner, mergeStyle(inherited, { bold: true }));
|
|
190
|
-
i = j + 2;
|
|
191
|
-
}
|
|
192
|
-
break;
|
|
193
|
-
}
|
|
194
|
-
case "strike": {
|
|
195
|
-
const j = s.indexOf("~~", i + 2);
|
|
196
|
-
if (j === -1) {
|
|
197
|
-
push(s.slice(i), inherited);
|
|
198
|
-
i = s.length;
|
|
199
|
-
}
|
|
200
|
-
else {
|
|
201
|
-
const inner = s.slice(i + 2, j);
|
|
202
|
-
walk(inner, mergeStyle(inherited, { fg: Colors.gray(10) }));
|
|
203
|
-
i = j + 2;
|
|
204
|
-
}
|
|
205
|
-
break;
|
|
206
|
-
}
|
|
207
|
-
case "italic": {
|
|
208
|
-
const marker = s[i];
|
|
209
|
-
const j = s.indexOf(marker, i + 1);
|
|
210
|
-
if (j === -1) {
|
|
211
|
-
push(s.slice(i), inherited);
|
|
212
|
-
i = s.length;
|
|
213
|
-
}
|
|
214
|
-
else {
|
|
215
|
-
const inner = s.slice(i + 1, j);
|
|
216
|
-
walk(inner, mergeStyle(inherited, { italic: true }));
|
|
217
|
-
i = j + 1;
|
|
218
|
-
}
|
|
219
|
-
break;
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
};
|
|
224
|
-
walk(text, base);
|
|
225
|
-
return frags;
|
|
226
|
-
}
|
|
227
|
-
blockViews(_maxW) {
|
|
228
|
-
const spacing = this.opts.spacing ?? 1;
|
|
229
|
-
const nodes = [];
|
|
230
|
-
const blocks = this.parseBlocks();
|
|
231
|
-
const styles = this.opts.styles ?? {};
|
|
232
|
-
const headingDefault = {
|
|
233
|
-
1: { fg: Colors.brightCyan, bold: true },
|
|
234
|
-
2: { fg: Colors.brightBlue, bold: true },
|
|
235
|
-
3: { fg: Colors.brightMagenta, bold: true },
|
|
236
|
-
};
|
|
237
|
-
for (const b of blocks) {
|
|
238
|
-
switch (b.type) {
|
|
239
|
-
case "heading": {
|
|
240
|
-
const style = styles.heading?.[b.level] ?? headingDefault[b.level];
|
|
241
|
-
const fr = this.parseInline(b.text, style);
|
|
242
|
-
nodes.push(new InlineText(fr, { wordWrap: true, breakWords: true }));
|
|
243
|
-
break;
|
|
244
|
-
}
|
|
245
|
-
case "paragraph": {
|
|
246
|
-
const fr = this.parseInline(b.text, styles.paragraph);
|
|
247
|
-
nodes.push(new InlineText(fr, { wordWrap: true, breakWords: true }));
|
|
248
|
-
break;
|
|
249
|
-
}
|
|
250
|
-
case "code": {
|
|
251
|
-
let node = new WrappedText(b.text, { wordWrap: false }).style(styles.code ?? { fg: Colors.gray(15), bg: Colors.gray(2) });
|
|
252
|
-
// Use border if requested
|
|
253
|
-
if (this.opts.styles?.codeBorder) {
|
|
254
|
-
node = node.border({
|
|
255
|
-
kind: this.opts.styles.codeBorder.kind ?? "rounded",
|
|
256
|
-
color: this.opts.styles.codeBorder.color ?? Colors.gray(8),
|
|
257
|
-
padding: this.opts.styles.codeBorder.padding ?? { x: 1, y: 0 },
|
|
258
|
-
});
|
|
259
|
-
}
|
|
260
|
-
nodes.push(node);
|
|
261
|
-
break;
|
|
262
|
-
}
|
|
263
|
-
case "quote": {
|
|
264
|
-
// Custom node draws a left bar and renders wrapped lines with a 2-col indent.
|
|
265
|
-
class QuoteBlock extends View {
|
|
266
|
-
child;
|
|
267
|
-
constructor(child) {
|
|
268
|
-
super();
|
|
269
|
-
this.child = child;
|
|
270
|
-
}
|
|
271
|
-
measureContent(maxW, maxH) {
|
|
272
|
-
const innerW = Math.max(0, maxW - 2);
|
|
273
|
-
const m = this.child.measure(innerW, maxH);
|
|
274
|
-
return { w: Math.min(maxW, m.w + 2), h: m.h };
|
|
275
|
-
}
|
|
276
|
-
renderContent(s, pal, rect) {
|
|
277
|
-
const idBar = pal.id({ fg: Colors.gray(10) });
|
|
278
|
-
for (let yy = 0; yy < rect.h; yy++)
|
|
279
|
-
s.drawCP(rect.x, rect.y + yy, "│".codePointAt(0), idBar);
|
|
280
|
-
const r = { x: rect.x + 2, y: rect.y, w: Math.max(0, rect.w - 2), h: rect.h };
|
|
281
|
-
this.child.render(s, pal, r);
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
const quoteStyle = styles.quote ?? { fg: Colors.gray(14) };
|
|
285
|
-
const rows = b.text.split("\n").map((line) => new InlineText(this.parseInline(line, quoteStyle), {
|
|
286
|
-
wordWrap: true,
|
|
287
|
-
breakWords: true,
|
|
288
|
-
}));
|
|
289
|
-
const body = new VStack(rows, 0);
|
|
290
|
-
nodes.push(new QuoteBlock(body));
|
|
291
|
-
break;
|
|
292
|
-
}
|
|
293
|
-
case "list": {
|
|
294
|
-
const bulletStyle = styles.listBullet ?? { fg: Colors.gray(12), bold: true };
|
|
295
|
-
b.items.forEach((item, idx) => {
|
|
296
|
-
const mark = b.ordered ? `${idx + 1}. ` : "• ";
|
|
297
|
-
const fragments = [
|
|
298
|
-
{ text: mark, style: bulletStyle },
|
|
299
|
-
...this.parseInline(item, { fg: Colors.white }),
|
|
300
|
-
];
|
|
301
|
-
const row = new InlineText(fragments, { wordWrap: true, breakWords: true });
|
|
302
|
-
nodes.push(row);
|
|
303
|
-
// Add explicit spacer between list items to keep things readable
|
|
304
|
-
if (idx < b.items.length - 1 && spacing > 0)
|
|
305
|
-
nodes.push(new WrappedText("", { wordWrap: false }));
|
|
306
|
-
});
|
|
307
|
-
break;
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
// Vertical spacing between blocks
|
|
311
|
-
if (spacing > 0)
|
|
312
|
-
nodes.push(new WrappedText("", { wordWrap: false }));
|
|
313
|
-
}
|
|
314
|
-
// Trim trailing spacer
|
|
315
|
-
if (nodes.length > 0) {
|
|
316
|
-
// Heuristic: empty WrappedText measures height 1 and no content; leave one blank line at most
|
|
317
|
-
nodes.pop();
|
|
318
|
-
}
|
|
319
|
-
return nodes;
|
|
320
|
-
}
|
|
321
|
-
measureContent(maxW, maxH) {
|
|
322
|
-
const nodes = this.blockViews(maxW);
|
|
323
|
-
let w = 0;
|
|
324
|
-
let h = 0;
|
|
325
|
-
for (const n of nodes) {
|
|
326
|
-
const m = n.measure(maxW, Math.max(0, maxH - h));
|
|
327
|
-
w = Math.max(w, m.w);
|
|
328
|
-
h = Math.min(maxH, h + m.h);
|
|
329
|
-
if (h >= maxH)
|
|
330
|
-
break;
|
|
331
|
-
}
|
|
332
|
-
return { w: Math.min(maxW, w), h };
|
|
333
|
-
}
|
|
334
|
-
renderContent(s, pal, rect) {
|
|
335
|
-
const nodes = this.blockViews(rect.w);
|
|
336
|
-
let y = rect.y;
|
|
337
|
-
for (const n of nodes) {
|
|
338
|
-
if (y >= rect.y + rect.h)
|
|
339
|
-
break;
|
|
340
|
-
const m = n.measure(rect.w, Math.max(0, rect.y + rect.h - y));
|
|
341
|
-
n.render(s, pal, { x: rect.x, y, w: Math.min(rect.w, m.w), h: Math.min(rect.h, m.h) });
|
|
342
|
-
y += m.h;
|
|
343
|
-
}
|
|
344
|
-
}
|
|
345
|
-
}
|
|
346
|
-
export const viewMarkdown = {
|
|
347
|
-
markdown(text, opts) {
|
|
348
|
-
return new Markdown(text, opts);
|
|
349
|
-
},
|
|
350
|
-
};
|
|
351
|
-
//# sourceMappingURL=markdown.js.map
|
package/dist/ui/markdown.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/ui/markdown.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import type { Palette, Surface, StyleSpec, ColorLike } from "../../render/surface.js";
|
|
2
|
-
import { View } from "../core/view.js";
|
|
3
|
-
import type { Rect } from "../core/geometry.js";
|
|
4
|
-
export type BorderKind = "none" | "rounded" | "square" | "ascii";
|
|
5
|
-
export type BorderOptions = {
|
|
6
|
-
kind?: BorderKind;
|
|
7
|
-
color?: ColorLike;
|
|
8
|
-
padding?: number | {
|
|
9
|
-
x?: number;
|
|
10
|
-
y?: number;
|
|
11
|
-
};
|
|
12
|
-
chars?: Partial<{
|
|
13
|
-
tl: string;
|
|
14
|
-
tr: string;
|
|
15
|
-
bl: string;
|
|
16
|
-
br: string;
|
|
17
|
-
h: string;
|
|
18
|
-
v: string;
|
|
19
|
-
}>;
|
|
20
|
-
style?: StyleSpec;
|
|
21
|
-
};
|
|
22
|
-
export declare class Border extends View {
|
|
23
|
-
readonly child: View;
|
|
24
|
-
readonly opts?: BorderOptions | undefined;
|
|
25
|
-
constructor(child: View, opts?: BorderOptions | undefined);
|
|
26
|
-
private get thickness();
|
|
27
|
-
protected measureContent(maxW: number, maxH: number): {
|
|
28
|
-
w: number;
|
|
29
|
-
h: number;
|
|
30
|
-
};
|
|
31
|
-
protected renderContent(s: Surface, pal: Palette, rect: Rect): void;
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=border.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"border.d.ts","sourceRoot":"","sources":["../../../src/ui/modifiers/border.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAErF,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAE/C,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAA;AAChE,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG;QAAE,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC7C,KAAK,CAAC,EAAE,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACzF,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB,CAAA;AAoBD,qBAAa,MAAO,SAAQ,IAAI;IAE5B,QAAQ,CAAC,KAAK,EAAE,IAAI;IACpB,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa;gBADpB,KAAK,EAAE,IAAI,EACX,IAAI,CAAC,EAAE,aAAa,YAAA;IAK/B,OAAO,KAAK,SAAS,GAEpB;IAED,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;;;;IAUnD,SAAS,CAAC,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI;CA6C7D"}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import { Colors, parseColor } from "../../render/surface.js";
|
|
2
|
-
import { View } from "../core/view.js";
|
|
3
|
-
function resolveBorderPadding(p) {
|
|
4
|
-
if (typeof p === "number")
|
|
5
|
-
return { x: Math.max(0, p | 0), y: Math.max(0, p | 0) };
|
|
6
|
-
return { x: Math.max(0, p?.x ?? 0), y: Math.max(0, p?.y ?? 0) };
|
|
7
|
-
}
|
|
8
|
-
function borderKindChars(kind) {
|
|
9
|
-
switch (kind) {
|
|
10
|
-
case "rounded":
|
|
11
|
-
return { tl: "╭", tr: "╮", bl: "╰", br: "╯", h: "─", v: "│" };
|
|
12
|
-
case "square":
|
|
13
|
-
return { tl: "┌", tr: "┐", bl: "└", br: "┘", h: "─", v: "│" };
|
|
14
|
-
case "ascii":
|
|
15
|
-
return { tl: "+", tr: "+", bl: "+", br: "+", h: "-", v: "|" };
|
|
16
|
-
default:
|
|
17
|
-
return { tl: "", tr: "", bl: "", br: "", h: "", v: "" };
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
export class Border extends View {
|
|
21
|
-
child;
|
|
22
|
-
opts;
|
|
23
|
-
constructor(child, opts) {
|
|
24
|
-
super();
|
|
25
|
-
this.child = child;
|
|
26
|
-
this.opts = opts;
|
|
27
|
-
}
|
|
28
|
-
get thickness() {
|
|
29
|
-
return this.opts?.kind === "none" ? 0 : 1;
|
|
30
|
-
}
|
|
31
|
-
measureContent(maxW, maxH) {
|
|
32
|
-
const t = this.thickness;
|
|
33
|
-
const pad = resolveBorderPadding(this.opts?.padding);
|
|
34
|
-
const m = this.child.measure(Math.max(0, maxW - t * 2 - pad.x * 2), Math.max(0, maxH - t * 2 - pad.y * 2));
|
|
35
|
-
return {
|
|
36
|
-
w: Math.min(maxW, m.w + t * 2 + pad.x * 2),
|
|
37
|
-
h: Math.min(maxH, m.h + t * 2 + pad.y * 2),
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
renderContent(s, pal, rect) {
|
|
41
|
-
const k = this.opts?.kind ?? "square";
|
|
42
|
-
const t = this.thickness;
|
|
43
|
-
const pad = resolveBorderPadding(this.opts?.padding);
|
|
44
|
-
const baseChars = borderKindChars(k);
|
|
45
|
-
const chars = { ...baseChars, ...(this.opts?.chars ?? {}) };
|
|
46
|
-
const safeChars = {
|
|
47
|
-
tl: (chars.tl ?? baseChars.tl),
|
|
48
|
-
tr: (chars.tr ?? baseChars.tr),
|
|
49
|
-
bl: (chars.bl ?? baseChars.bl),
|
|
50
|
-
br: (chars.br ?? baseChars.br),
|
|
51
|
-
h: (chars.h ?? baseChars.h),
|
|
52
|
-
v: (chars.v ?? baseChars.v),
|
|
53
|
-
};
|
|
54
|
-
const borderStyle = this.opts?.style ?? {};
|
|
55
|
-
const color = this.opts?.color != null ? parseColor(this.opts.color) : Colors.gray(8);
|
|
56
|
-
const idBorder = pal.id({ ...borderStyle, fg: color ?? borderStyle.fg });
|
|
57
|
-
const w = rect.w;
|
|
58
|
-
const h = rect.h;
|
|
59
|
-
if (w <= 0 || h <= 0)
|
|
60
|
-
return;
|
|
61
|
-
if (t === 1 && w >= 2 && h >= 2) {
|
|
62
|
-
s.drawCP(rect.x, rect.y, safeChars.tl.codePointAt(0), idBorder);
|
|
63
|
-
s.fillRect(rect.x + 1, rect.y, w - 2, 1, safeChars.h.codePointAt(0), idBorder);
|
|
64
|
-
s.drawCP(rect.x + w - 1, rect.y, safeChars.tr.codePointAt(0), idBorder);
|
|
65
|
-
for (let yy = rect.y + 1; yy < rect.y + h - 1; yy++) {
|
|
66
|
-
s.drawCP(rect.x, yy, safeChars.v.codePointAt(0), idBorder);
|
|
67
|
-
s.drawCP(rect.x + w - 1, yy, safeChars.v.codePointAt(0), idBorder);
|
|
68
|
-
}
|
|
69
|
-
s.drawCP(rect.x, rect.y + h - 1, safeChars.bl.codePointAt(0), idBorder);
|
|
70
|
-
s.fillRect(rect.x + 1, rect.y + h - 1, w - 2, 1, safeChars.h.codePointAt(0), idBorder);
|
|
71
|
-
s.drawCP(rect.x + w - 1, rect.y + h - 1, safeChars.br.codePointAt(0), idBorder);
|
|
72
|
-
}
|
|
73
|
-
const inner = {
|
|
74
|
-
x: rect.x + t + pad.x,
|
|
75
|
-
y: rect.y + t + pad.y,
|
|
76
|
-
w: Math.max(0, rect.w - (t + pad.x) * 2),
|
|
77
|
-
h: Math.max(0, rect.h - (t + pad.y) * 2),
|
|
78
|
-
};
|
|
79
|
-
this.child.render(s, pal, inner);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
//# sourceMappingURL=border.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"border.js","sourceRoot":"","sources":["../../../src/ui/modifiers/border.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { Palette, Surface } from "../../render/surface.js";
|
|
2
|
-
import { View } from "../core/view.js";
|
|
3
|
-
import type { Rect } from "../core/geometry.js";
|
|
4
|
-
export declare class Fill extends View {
|
|
5
|
-
readonly child: View;
|
|
6
|
-
readonly axis: "horizontal" | "vertical";
|
|
7
|
-
constructor(child: View, axis: "horizontal" | "vertical");
|
|
8
|
-
protected measureContent(maxW: number, maxH: number): {
|
|
9
|
-
w: number;
|
|
10
|
-
h: number;
|
|
11
|
-
};
|
|
12
|
-
protected renderContent(s: Surface, pal: Palette, rect: Rect): void;
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=fill.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fill.d.ts","sourceRoot":"","sources":["../../../src/ui/modifiers/fill.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAG/C,qBAAa,IAAK,SAAQ,IAAI;IAE1B,QAAQ,CAAC,KAAK,EAAE,IAAI;IACpB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,UAAU;gBAD/B,KAAK,EAAE,IAAI,EACX,IAAI,EAAE,YAAY,GAAG,UAAU;IAK1C,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;;;;IAWnD,SAAS,CAAC,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI;CAG7D"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { View } from "../core/view.js";
|
|
2
|
-
// Fill wrapper (SwiftUI's .frame(maxWidth: .infinity) / .frame(maxHeight: .infinity))
|
|
3
|
-
export class Fill extends View {
|
|
4
|
-
child;
|
|
5
|
-
axis;
|
|
6
|
-
constructor(child, axis) {
|
|
7
|
-
super();
|
|
8
|
-
this.child = child;
|
|
9
|
-
this.axis = axis;
|
|
10
|
-
}
|
|
11
|
-
measureContent(maxW, maxH) {
|
|
12
|
-
const childMeasure = this.child.measure(maxW, maxH);
|
|
13
|
-
// Fill the requested axis to maximum available space
|
|
14
|
-
if (this.axis === "horizontal") {
|
|
15
|
-
return { w: maxW, h: childMeasure.h };
|
|
16
|
-
}
|
|
17
|
-
else {
|
|
18
|
-
return { w: childMeasure.w, h: maxH };
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
renderContent(s, pal, rect) {
|
|
22
|
-
this.child.render(s, pal, rect);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=fill.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fill.js","sourceRoot":"","sources":["../../../src/ui/modifiers/fill.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAGtC,sFAAsF;AACtF,MAAM,OAAO,IAAK,SAAQ,IAAI;IAEjB;IACA;IAFX,YACW,KAAW,EACX,IAA+B;QAExC,KAAK,EAAE,CAAA;QAHE,UAAK,GAAL,KAAK,CAAM;QACX,SAAI,GAAJ,IAAI,CAA2B;IAG1C,CAAC;IAES,cAAc,CAAC,IAAY,EAAE,IAAY;QACjD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAEnD,qDAAqD;QACrD,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC/B,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,CAAA;QACvC,CAAC;aAAM,CAAC;YACN,OAAO,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAA;QACvC,CAAC;IACH,CAAC;IAES,aAAa,CAAC,CAAU,EAAE,GAAY,EAAE,IAAU;QAC1D,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IACjC,CAAC;CACF"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import type { Palette, Surface } from "../../render/surface.js";
|
|
2
|
-
import { View } from "../core/view.js";
|
|
3
|
-
import type { Rect, Align2D } from "../core/geometry.js";
|
|
4
|
-
export interface FrameSpec {
|
|
5
|
-
width?: number;
|
|
6
|
-
height?: number;
|
|
7
|
-
minWidth?: number;
|
|
8
|
-
maxWidth?: number;
|
|
9
|
-
minHeight?: number;
|
|
10
|
-
maxHeight?: number;
|
|
11
|
-
alignment?: Align2D;
|
|
12
|
-
}
|
|
13
|
-
export declare class Frame extends View {
|
|
14
|
-
readonly child: View;
|
|
15
|
-
readonly opts: FrameSpec;
|
|
16
|
-
constructor(child: View, opts: FrameSpec);
|
|
17
|
-
protected measureContent(maxW: number, maxH: number): {
|
|
18
|
-
w: number;
|
|
19
|
-
h: number;
|
|
20
|
-
};
|
|
21
|
-
protected renderContent(s: Surface, pal: Palette, rect: Rect): void;
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=frame.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"frame.d.ts","sourceRoot":"","sources":["../../../src/ui/modifiers/frame.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAExD,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,qBAAa,KAAM,SAAQ,IAAI;IAE3B,QAAQ,CAAC,KAAK,EAAE,IAAI;IACpB,QAAQ,CAAC,IAAI,EAAE,SAAS;gBADf,KAAK,EAAE,IAAI,EACX,IAAI,EAAE,SAAS;IAK1B,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;;;;IAmBnD,SAAS,CAAC,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI;CAgC7D"}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { View } from "../core/view.js";
|
|
2
|
-
export class Frame extends View {
|
|
3
|
-
child;
|
|
4
|
-
opts;
|
|
5
|
-
constructor(child, opts) {
|
|
6
|
-
super();
|
|
7
|
-
this.child = child;
|
|
8
|
-
this.opts = opts;
|
|
9
|
-
}
|
|
10
|
-
measureContent(maxW, maxH) {
|
|
11
|
-
const childMeasure = this.child.measure(maxW, maxH);
|
|
12
|
-
const fs = this.opts;
|
|
13
|
-
const capW = Math.min(maxW, fs.maxWidth ?? maxW);
|
|
14
|
-
const capH = Math.min(maxH, fs.maxHeight ?? maxH);
|
|
15
|
-
let targetW = fs.width === Infinity ? capW : (fs.width ?? childMeasure.w);
|
|
16
|
-
let targetH = fs.height === Infinity ? capH : (fs.height ?? childMeasure.h);
|
|
17
|
-
targetW = Math.max(fs.minWidth ?? 0, Math.min(capW, targetW));
|
|
18
|
-
targetH = Math.max(fs.minHeight ?? 0, Math.min(capH, targetH));
|
|
19
|
-
return {
|
|
20
|
-
w: Math.min(maxW, targetW),
|
|
21
|
-
h: Math.min(maxH, targetH),
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
renderContent(s, pal, rect) {
|
|
25
|
-
// Measure child within our rect bounds
|
|
26
|
-
const childMeasure = this.child.measure(rect.w, rect.h);
|
|
27
|
-
const childW = Math.min(rect.w, childMeasure.w);
|
|
28
|
-
const childH = Math.min(rect.h, childMeasure.h);
|
|
29
|
-
// Apply alignment
|
|
30
|
-
const alignment = this.opts.alignment ?? { h: "leading", v: "top" };
|
|
31
|
-
let offsetX = 0;
|
|
32
|
-
let offsetY = 0;
|
|
33
|
-
if (alignment.h === "center") {
|
|
34
|
-
offsetX = Math.floor((rect.w - childW) / 2);
|
|
35
|
-
}
|
|
36
|
-
else if (alignment.h === "trailing") {
|
|
37
|
-
offsetX = Math.max(0, rect.w - childW);
|
|
38
|
-
}
|
|
39
|
-
if (alignment.v === "center") {
|
|
40
|
-
offsetY = Math.floor((rect.h - childH) / 2);
|
|
41
|
-
}
|
|
42
|
-
else if (alignment.v === "bottom") {
|
|
43
|
-
offsetY = Math.max(0, rect.h - childH);
|
|
44
|
-
}
|
|
45
|
-
const childRect = {
|
|
46
|
-
x: rect.x + offsetX,
|
|
47
|
-
y: rect.y + offsetY,
|
|
48
|
-
w: childW,
|
|
49
|
-
h: childH,
|
|
50
|
-
};
|
|
51
|
-
this.child.render(s, pal, childRect);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
//# sourceMappingURL=frame.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"frame.js","sourceRoot":"","sources":["../../../src/ui/modifiers/frame.ts"],"names":[],"mappings":"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"}
|