@teaui/preact 1.3.8 → 1.4.8
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/.dist/components/TextReact.js +17 -24
- package/.dist/components/TextReact.js.map +1 -1
- package/.dist/components.d.ts +6 -6
- package/.dist/components.js +88 -118
- package/.dist/components.js.map +1 -1
- package/.dist/index.d.ts +2 -2
- package/.dist/index.js +2 -18
- package/.dist/index.js.map +1 -1
- package/.dist/preact.d.ts +7 -6
- package/.dist/preact.js +110 -72
- package/.dist/preact.js.map +1 -1
- package/README.md +185 -21
- package/package.json +6 -5
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TextStyle = exports.TextProvider = exports.TextContainer = exports.TextLiteral = void 0;
|
|
4
|
-
const core_1 = require("@teaui/core");
|
|
1
|
+
import { Container, define, Rect, Size, Style, Text, View, } from '@teaui/core';
|
|
5
2
|
// yeah I don't care about this namespace I just needed something to attach the JSDoc to
|
|
6
3
|
const DEFAULTS = {
|
|
7
4
|
alignment: 'left',
|
|
@@ -12,12 +9,12 @@ const DEFAULTS = {
|
|
|
12
9
|
* Used in the React reconciler for literal text JSX elements. They don't have any
|
|
13
10
|
* props.
|
|
14
11
|
*/
|
|
15
|
-
class TextLiteral extends
|
|
12
|
+
export class TextLiteral extends View {
|
|
16
13
|
#text;
|
|
17
14
|
constructor(text) {
|
|
18
15
|
super({});
|
|
19
16
|
this.#text = text;
|
|
20
|
-
|
|
17
|
+
define(this, 'text', { enumerable: true });
|
|
21
18
|
}
|
|
22
19
|
update({ text, ...props }) {
|
|
23
20
|
super.update(props);
|
|
@@ -38,7 +35,7 @@ class TextLiteral extends core_1.View {
|
|
|
38
35
|
}
|
|
39
36
|
}
|
|
40
37
|
if (style) {
|
|
41
|
-
return style.toSGR(
|
|
38
|
+
return style.toSGR(Style.NONE, this.#text);
|
|
42
39
|
}
|
|
43
40
|
return this.#text;
|
|
44
41
|
}
|
|
@@ -61,17 +58,16 @@ class TextLiteral extends core_1.View {
|
|
|
61
58
|
textContainer?.invalidateText();
|
|
62
59
|
}
|
|
63
60
|
naturalSize() {
|
|
64
|
-
return
|
|
61
|
+
return Size.zero;
|
|
65
62
|
}
|
|
66
63
|
render() { }
|
|
67
64
|
}
|
|
68
|
-
exports.TextLiteral = TextLiteral;
|
|
69
65
|
/**
|
|
70
66
|
* Subsequent TextLiteral nodes are grouped into a TextContainer, which handles the
|
|
71
67
|
* layout of child nodes. It gets its style, font, and alignment from the nearest
|
|
72
68
|
* parent TextProvider.
|
|
73
69
|
*/
|
|
74
|
-
class TextContainer extends
|
|
70
|
+
export class TextContainer extends Container {
|
|
75
71
|
#nodes = [];
|
|
76
72
|
constructor() {
|
|
77
73
|
super({});
|
|
@@ -108,11 +104,11 @@ class TextContainer extends core_1.Container {
|
|
|
108
104
|
let childIndex = 0;
|
|
109
105
|
for (const nextChild of this.#nodesToChildren()) {
|
|
110
106
|
const childView = this.children.at(childIndex);
|
|
111
|
-
if (nextChild instanceof
|
|
107
|
+
if (nextChild instanceof View) {
|
|
112
108
|
childIndex += 1;
|
|
113
109
|
}
|
|
114
110
|
else {
|
|
115
|
-
if (!(childView instanceof
|
|
111
|
+
if (!(childView instanceof Text)) {
|
|
116
112
|
this.#invalidateNodes();
|
|
117
113
|
return;
|
|
118
114
|
}
|
|
@@ -126,7 +122,7 @@ class TextContainer extends core_1.Container {
|
|
|
126
122
|
// remove and re-add those views.
|
|
127
123
|
super.removeAllChildren();
|
|
128
124
|
for (const child of this.#nodesToChildren()) {
|
|
129
|
-
if (child instanceof
|
|
125
|
+
if (child instanceof View) {
|
|
130
126
|
super.add(child);
|
|
131
127
|
}
|
|
132
128
|
else {
|
|
@@ -158,7 +154,7 @@ class TextContainer extends core_1.Container {
|
|
|
158
154
|
return children;
|
|
159
155
|
}
|
|
160
156
|
naturalSize(available) {
|
|
161
|
-
const size =
|
|
157
|
+
const size = Size.zero.mutableCopy();
|
|
162
158
|
const remaining = available.mutableCopy();
|
|
163
159
|
for (const child of this.children) {
|
|
164
160
|
const childSize = child.naturalSize(remaining);
|
|
@@ -178,7 +174,7 @@ class TextContainer extends core_1.Container {
|
|
|
178
174
|
const childSize = child.naturalSize(remaining).mutableCopy();
|
|
179
175
|
childSize.width = viewport.contentSize.width;
|
|
180
176
|
remaining.height -= childSize.height;
|
|
181
|
-
const childViewport = new
|
|
177
|
+
const childViewport = new Rect([0, y], childSize);
|
|
182
178
|
viewport.clipped(childViewport, inner => child.render(inner));
|
|
183
179
|
y += childSize.height;
|
|
184
180
|
}
|
|
@@ -195,7 +191,7 @@ class TextContainer extends core_1.Container {
|
|
|
195
191
|
if (textProvider) {
|
|
196
192
|
textProps = { ...textProps, ...textProvider.textProps };
|
|
197
193
|
}
|
|
198
|
-
return new
|
|
194
|
+
return new Text({
|
|
199
195
|
text,
|
|
200
196
|
...textProps,
|
|
201
197
|
});
|
|
@@ -212,7 +208,6 @@ class TextContainer extends core_1.Container {
|
|
|
212
208
|
});
|
|
213
209
|
}
|
|
214
210
|
}
|
|
215
|
-
exports.TextContainer = TextContainer;
|
|
216
211
|
/**
|
|
217
212
|
* Intended to contain a single TextContainer. Provides the styling that is used to
|
|
218
213
|
* create Text views.
|
|
@@ -220,8 +215,8 @@ exports.TextContainer = TextContainer;
|
|
|
220
215
|
* @example
|
|
221
216
|
* <Text align='left' bold>text</Text>
|
|
222
217
|
*/
|
|
223
|
-
class TextProvider extends
|
|
224
|
-
#style =
|
|
218
|
+
export class TextProvider extends Container {
|
|
219
|
+
#style = Style.NONE;
|
|
225
220
|
#font;
|
|
226
221
|
#alignment;
|
|
227
222
|
#wrap;
|
|
@@ -240,7 +235,7 @@ class TextProvider extends core_1.Container {
|
|
|
240
235
|
break;
|
|
241
236
|
}
|
|
242
237
|
}
|
|
243
|
-
return parentStyle ??
|
|
238
|
+
return parentStyle ?? Style.NONE;
|
|
244
239
|
}
|
|
245
240
|
get textProps() {
|
|
246
241
|
let parentProvider;
|
|
@@ -275,23 +270,21 @@ class TextProvider extends core_1.Container {
|
|
|
275
270
|
}
|
|
276
271
|
#update(props) {
|
|
277
272
|
const { style, alignment, wrap, font, ...styleProps } = props;
|
|
278
|
-
this.#style = new
|
|
273
|
+
this.#style = new Style(styleProps).merge(style);
|
|
279
274
|
this.#font = font;
|
|
280
275
|
this.#alignment = alignment ?? 'left';
|
|
281
276
|
this.#wrap = wrap ?? false;
|
|
282
277
|
}
|
|
283
278
|
}
|
|
284
|
-
exports.TextProvider = TextProvider;
|
|
285
279
|
/**
|
|
286
280
|
* Provides inline styles - doesn't support wrap or alignment.
|
|
287
281
|
*
|
|
288
282
|
* Also doesn't support 'font' because that's not encoded as an SGR code - but
|
|
289
283
|
* ideally it would be supported.
|
|
290
284
|
*/
|
|
291
|
-
class TextStyle extends TextProvider {
|
|
285
|
+
export class TextStyle extends TextProvider {
|
|
292
286
|
constructor(props) {
|
|
293
287
|
super(props);
|
|
294
288
|
}
|
|
295
289
|
}
|
|
296
|
-
exports.TextStyle = TextStyle;
|
|
297
290
|
//# sourceMappingURL=TextReact.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextReact.js","sourceRoot":"","sources":["../../lib/components/TextReact.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TextReact.js","sourceRoot":"","sources":["../../lib/components/TextReact.ts"],"names":[],"mappings":"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"}
|
package/.dist/components.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import type * as preact from 'preact';
|
|
2
2
|
import type { Accordion as WrAccordion, Box as WrBox, Button as WrButton, Checkbox as WrCheckbox, Collapsible as WrCollapsible, CollapsibleText as WrCollapsibleText, ConsoleLog as WrConsoleLog, Digits as WrDigits, Drawer as WrDrawer, Stack as WrStack, Input as WrInput, Scrollable as WrScrollable, Separator as WrSeparator, Slider as WrSlider, Space as WrSpace, Tabs as WrTabs, ToggleGroup as WrToggleGroup, ViewProps } from '@teaui/core';
|
|
3
|
-
import { TextProvider, TextStyle } from './components/TextReact';
|
|
3
|
+
import { TextProvider, TextStyle } from './components/TextReact.js';
|
|
4
4
|
type Children = 'children' | 'child';
|
|
5
5
|
type TUIView<T extends abstract new (arg: any, ...args: any) => any, OmitProps extends keyof ConstructorParameters<T>[0] = Children> = Omit<NonNullable<ConstructorParameters<T>[0]>, OmitProps>;
|
|
6
6
|
type TUIContainer<T extends abstract new (arg: any, ...args: any) => any, ChildrenProps extends keyof NonNullable<ConstructorParameters<T>[0]> = Children> = TUIView<T, ChildrenProps> & {
|
|
7
|
-
[Key in ChildrenProps]?:
|
|
7
|
+
[Key in ChildrenProps]?: preact.ComponentChildren;
|
|
8
8
|
};
|
|
9
9
|
export type CheckboxProps = TUIView<typeof WrCheckbox>;
|
|
10
10
|
export type CollapsibleTextProps = TUIView<typeof WrCollapsibleText>;
|
|
@@ -30,7 +30,7 @@ export type AccordionSectionProps = TUIContainer<typeof WrAccordion.Section>;
|
|
|
30
30
|
export type DrawerProps = TUIContainer<typeof WrDrawer, 'content' | 'drawer' | 'children'>;
|
|
31
31
|
export type TabsProps = TUIContainer<typeof WrTabs>;
|
|
32
32
|
export type TabsSectionProps = TUIContainer<typeof WrTabs.Section>;
|
|
33
|
-
declare module '
|
|
33
|
+
declare module 'preact' {
|
|
34
34
|
namespace JSX {
|
|
35
35
|
interface IntrinsicElements {
|
|
36
36
|
'tui-br': {};
|
|
@@ -93,9 +93,9 @@ export declare function Space(reactProps: SpaceProps): preact.JSX.Element;
|
|
|
93
93
|
export declare function ToggleGroup(reactProps: ToggleGroupProps): preact.JSX.Element;
|
|
94
94
|
interface TreeProps<T> extends ViewProps {
|
|
95
95
|
data: T[];
|
|
96
|
-
render: (datum: T) =>
|
|
96
|
+
render: (datum: T) => preact.ComponentChildren;
|
|
97
97
|
getChildren?: (datum: T) => T[] | undefined;
|
|
98
|
-
title:
|
|
98
|
+
title: preact.ComponentChildren | string;
|
|
99
99
|
}
|
|
100
100
|
export declare function Tree<T>(reactProps: TreeProps<T>): preact.JSX.Element;
|
|
101
101
|
export declare function Box(reactProps: BoxProps): preact.JSX.Element;
|
package/.dist/components.js
CHANGED
|
@@ -1,143 +1,116 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.Tabs = exports.Drawer = exports.Accordion = exports.Stack = exports.Slider = exports.Separator = void 0;
|
|
4
|
-
exports.Br = Br;
|
|
5
|
-
exports.Checkbox = Checkbox;
|
|
6
|
-
exports.CollapsibleText = CollapsibleText;
|
|
7
|
-
exports.ConsoleLog = ConsoleLog;
|
|
8
|
-
exports.Digits = Digits;
|
|
9
|
-
exports.H1 = H1;
|
|
10
|
-
exports.H2 = H2;
|
|
11
|
-
exports.H3 = H3;
|
|
12
|
-
exports.H4 = H4;
|
|
13
|
-
exports.H5 = H5;
|
|
14
|
-
exports.H6 = H6;
|
|
15
|
-
exports.Input = Input;
|
|
16
|
-
exports.Space = Space;
|
|
17
|
-
exports.ToggleGroup = ToggleGroup;
|
|
18
|
-
exports.Tree = Tree;
|
|
19
|
-
exports.Box = Box;
|
|
20
|
-
exports.Button = Button;
|
|
21
|
-
exports.Collapsible = Collapsible;
|
|
22
|
-
exports.Scrollable = Scrollable;
|
|
23
|
-
exports.Style = Style;
|
|
24
|
-
exports.Text = Text;
|
|
25
|
-
const jsx_runtime_1 = require("preact/jsx-runtime");
|
|
26
|
-
const hooks_1 = require("preact/hooks");
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "preact/jsx-runtime";
|
|
2
|
+
import { useMemo } from 'preact/hooks';
|
|
27
3
|
////
|
|
28
4
|
/// Views
|
|
29
5
|
//
|
|
30
|
-
function Br() {
|
|
31
|
-
return (
|
|
6
|
+
export function Br() {
|
|
7
|
+
return _jsx("tui-br", {});
|
|
32
8
|
}
|
|
33
|
-
function Checkbox(reactProps) {
|
|
34
|
-
return (
|
|
9
|
+
export function Checkbox(reactProps) {
|
|
10
|
+
return _jsx("tui-checkbox", { ...reactProps });
|
|
35
11
|
}
|
|
36
|
-
function CollapsibleText(reactProps) {
|
|
37
|
-
return (
|
|
12
|
+
export function CollapsibleText(reactProps) {
|
|
13
|
+
return _jsx("tui-collapsible-text", { ...reactProps });
|
|
38
14
|
}
|
|
39
|
-
function ConsoleLog(reactProps) {
|
|
40
|
-
return (
|
|
15
|
+
export function ConsoleLog(reactProps) {
|
|
16
|
+
return _jsx("tui-console", { ...reactProps });
|
|
41
17
|
}
|
|
42
|
-
function Digits(reactProps) {
|
|
43
|
-
return (
|
|
18
|
+
export function Digits(reactProps) {
|
|
19
|
+
return _jsx("tui-digits", { ...reactProps });
|
|
44
20
|
}
|
|
45
|
-
function H1(reactProps) {
|
|
46
|
-
return (
|
|
21
|
+
export function H1(reactProps) {
|
|
22
|
+
return _jsx("tui-h1", { ...reactProps });
|
|
47
23
|
}
|
|
48
|
-
function H2(reactProps) {
|
|
49
|
-
return (
|
|
24
|
+
export function H2(reactProps) {
|
|
25
|
+
return _jsx("tui-h2", { ...reactProps });
|
|
50
26
|
}
|
|
51
|
-
function H3(reactProps) {
|
|
52
|
-
return (
|
|
27
|
+
export function H3(reactProps) {
|
|
28
|
+
return _jsx("tui-h3", { ...reactProps });
|
|
53
29
|
}
|
|
54
|
-
function H4(reactProps) {
|
|
55
|
-
return (
|
|
30
|
+
export function H4(reactProps) {
|
|
31
|
+
return _jsx("tui-h4", { ...reactProps });
|
|
56
32
|
}
|
|
57
|
-
function H5(reactProps) {
|
|
58
|
-
return (
|
|
33
|
+
export function H5(reactProps) {
|
|
34
|
+
return _jsx("tui-h5", { ...reactProps });
|
|
59
35
|
}
|
|
60
|
-
function H6(reactProps) {
|
|
61
|
-
return (
|
|
36
|
+
export function H6(reactProps) {
|
|
37
|
+
return _jsx("tui-h6", { ...reactProps });
|
|
62
38
|
}
|
|
63
|
-
function Input(reactProps) {
|
|
64
|
-
return (
|
|
39
|
+
export function Input(reactProps) {
|
|
40
|
+
return _jsx("tui-input", { ...reactProps });
|
|
65
41
|
}
|
|
66
|
-
const Separator = function Separator(reactProps) {
|
|
67
|
-
return (
|
|
42
|
+
export const Separator = function Separator(reactProps) {
|
|
43
|
+
return _jsx("tui-separator", { ...reactProps });
|
|
68
44
|
};
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
return (0, jsx_runtime_1.jsx)("tui-separator", { direction: "horizontal", ...reactProps });
|
|
45
|
+
Separator.horizontal = function SeparatorHorizontal(reactProps) {
|
|
46
|
+
return _jsx("tui-separator", { direction: "horizontal", ...reactProps });
|
|
72
47
|
};
|
|
73
|
-
|
|
74
|
-
return (
|
|
48
|
+
Separator.vertical = function SeparatorHorizontal(reactProps) {
|
|
49
|
+
return _jsx("tui-separator", { direction: "vertical", ...reactProps });
|
|
75
50
|
};
|
|
76
|
-
const Slider = function Slider(reactProps) {
|
|
77
|
-
return (
|
|
51
|
+
export const Slider = function Slider(reactProps) {
|
|
52
|
+
return _jsx("tui-slider", { ...reactProps });
|
|
78
53
|
};
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
return (0, jsx_runtime_1.jsx)("tui-slider", { direction: "horizontal", ...reactProps });
|
|
54
|
+
Slider.horizontal = function SliderHorizontal(reactProps) {
|
|
55
|
+
return _jsx("tui-slider", { direction: "horizontal", ...reactProps });
|
|
82
56
|
};
|
|
83
|
-
|
|
84
|
-
return (
|
|
57
|
+
Slider.vertical = function SliderHorizontal(reactProps) {
|
|
58
|
+
return _jsx("tui-slider", { direction: "vertical", ...reactProps });
|
|
85
59
|
};
|
|
86
|
-
function Space(reactProps) {
|
|
87
|
-
return (
|
|
60
|
+
export function Space(reactProps) {
|
|
61
|
+
return _jsx("tui-space", { ...reactProps });
|
|
88
62
|
}
|
|
89
|
-
function ToggleGroup(reactProps) {
|
|
90
|
-
return (
|
|
63
|
+
export function ToggleGroup(reactProps) {
|
|
64
|
+
return _jsx("tui-toggle-group", { ...reactProps });
|
|
91
65
|
}
|
|
92
|
-
function Tree(reactProps) {
|
|
66
|
+
export function Tree(reactProps) {
|
|
93
67
|
const { title, ...props } = reactProps;
|
|
94
|
-
const titleView =
|
|
68
|
+
const titleView = useMemo(() => {
|
|
95
69
|
if (typeof title === 'string') {
|
|
96
|
-
return (
|
|
70
|
+
return _jsx("tui-text", { children: title });
|
|
97
71
|
}
|
|
98
72
|
return title;
|
|
99
73
|
}, [title]);
|
|
100
|
-
return (
|
|
74
|
+
return _jsx("tui-tree", { ...props, children: titleView });
|
|
101
75
|
}
|
|
102
76
|
////
|
|
103
77
|
/// "Simple" containers
|
|
104
78
|
//
|
|
105
|
-
function Box(reactProps) {
|
|
79
|
+
export function Box(reactProps) {
|
|
106
80
|
const { children, ...props } = reactProps;
|
|
107
|
-
return (
|
|
81
|
+
return _jsx("tui-box", { ...props, children: children });
|
|
108
82
|
}
|
|
109
|
-
function Button(reactProps) {
|
|
83
|
+
export function Button(reactProps) {
|
|
110
84
|
const { children, ...props } = reactProps;
|
|
111
|
-
return (
|
|
85
|
+
return _jsx("tui-button", { ...props, children: children });
|
|
112
86
|
}
|
|
113
|
-
function Collapsible(reactProps) {
|
|
87
|
+
export function Collapsible(reactProps) {
|
|
114
88
|
const { collapsed, expanded, ...props } = reactProps;
|
|
115
|
-
return ((
|
|
89
|
+
return (_jsxs("tui-collapsible", { ...props, children: [collapsed, expanded] }));
|
|
116
90
|
}
|
|
117
|
-
const Stack = function Stack(reactProps) {
|
|
91
|
+
export const Stack = function Stack(reactProps) {
|
|
118
92
|
const { children, ...props } = reactProps;
|
|
119
|
-
return (
|
|
93
|
+
return _jsx("tui-stack", { ...props, children: children });
|
|
120
94
|
};
|
|
121
|
-
|
|
122
|
-
exports.Stack.down = function StackLeft(reactProps) {
|
|
95
|
+
Stack.down = function StackLeft(reactProps) {
|
|
123
96
|
const { children, ...props } = reactProps;
|
|
124
|
-
return ((
|
|
97
|
+
return (_jsx("tui-stack", { direction: "down", ...props, children: children }));
|
|
125
98
|
};
|
|
126
|
-
|
|
99
|
+
Stack.up = function StackLeft(reactProps) {
|
|
127
100
|
const { children, ...props } = reactProps;
|
|
128
|
-
return ((
|
|
101
|
+
return (_jsx("tui-stack", { direction: "up", ...props, children: children }));
|
|
129
102
|
};
|
|
130
|
-
|
|
103
|
+
Stack.right = function StackLeft(reactProps) {
|
|
131
104
|
const { children, ...props } = reactProps;
|
|
132
|
-
return ((
|
|
105
|
+
return (_jsx("tui-stack", { direction: "right", ...props, children: children }));
|
|
133
106
|
};
|
|
134
|
-
|
|
107
|
+
Stack.left = function StackLeft(reactProps) {
|
|
135
108
|
const { children, ...props } = reactProps;
|
|
136
|
-
return ((
|
|
109
|
+
return (_jsx("tui-stack", { direction: "left", ...props, children: children }));
|
|
137
110
|
};
|
|
138
|
-
function Scrollable(reactProps) {
|
|
111
|
+
export function Scrollable(reactProps) {
|
|
139
112
|
const { children, ...props } = reactProps;
|
|
140
|
-
return (
|
|
113
|
+
return _jsx("tui-scrollable", { ...props, children: children });
|
|
141
114
|
}
|
|
142
115
|
/**
|
|
143
116
|
* <Style /> is similar to <Text/> but only allows inline styles (bold, etc).
|
|
@@ -145,53 +118,50 @@ function Scrollable(reactProps) {
|
|
|
145
118
|
* font is not encodable via SGR codes (and that's how I'm styling and
|
|
146
119
|
* concatenating the text nodes).
|
|
147
120
|
*/
|
|
148
|
-
function Style(reactProps) {
|
|
149
|
-
return (
|
|
121
|
+
export function Style(reactProps) {
|
|
122
|
+
return _jsx("tui-style", { ...reactProps });
|
|
150
123
|
}
|
|
151
124
|
/**
|
|
152
125
|
* <Text /> is a container that sets the text properties of child TextLiterals
|
|
153
126
|
* (font, style) and TextContainers (wrap, alignment)
|
|
154
127
|
*/
|
|
155
|
-
function Text(reactProps) {
|
|
156
|
-
return (
|
|
128
|
+
export function Text(reactProps) {
|
|
129
|
+
return _jsx("tui-text", { ...reactProps });
|
|
157
130
|
}
|
|
158
|
-
const Accordion = function Accordion(reactProps) {
|
|
131
|
+
export const Accordion = function Accordion(reactProps) {
|
|
159
132
|
const { children, ...props } = reactProps;
|
|
160
|
-
return (
|
|
133
|
+
return _jsx("tui-accordion", { ...props, children: children });
|
|
161
134
|
};
|
|
162
|
-
|
|
163
|
-
exports.Accordion.Section = function SliderHorizontal(reactProps) {
|
|
135
|
+
Accordion.Section = function SliderHorizontal(reactProps) {
|
|
164
136
|
const { children, ...props } = reactProps;
|
|
165
|
-
return (
|
|
137
|
+
return _jsx("tui-accordion-section", { ...props, children: children });
|
|
166
138
|
};
|
|
167
|
-
const Drawer = function Drawer(reactProps) {
|
|
139
|
+
export const Drawer = function Drawer(reactProps) {
|
|
168
140
|
const { children, content, drawer, ...props } = reactProps;
|
|
169
|
-
return ((
|
|
141
|
+
return (_jsxs("tui-drawer", { ...props, children: [content, drawer, children] }));
|
|
170
142
|
};
|
|
171
|
-
|
|
172
|
-
exports.Drawer.top = function DrawerLeft(reactProps) {
|
|
143
|
+
Drawer.top = function DrawerLeft(reactProps) {
|
|
173
144
|
const { children, content, drawer, ...props } = reactProps;
|
|
174
|
-
return ((
|
|
145
|
+
return (_jsxs("tui-drawer", { location: "top", ...props, children: [content, drawer, children] }));
|
|
175
146
|
};
|
|
176
|
-
|
|
147
|
+
Drawer.right = function DrawerLeft(reactProps) {
|
|
177
148
|
const { children, content, drawer, ...props } = reactProps;
|
|
178
|
-
return ((
|
|
149
|
+
return (_jsxs("tui-drawer", { location: "right", ...props, children: [content, drawer, children] }));
|
|
179
150
|
};
|
|
180
|
-
|
|
181
|
-
const { children, ...props } = reactProps;
|
|
182
|
-
return ((
|
|
151
|
+
Drawer.bottom = function DrawerBottom(reactProps) {
|
|
152
|
+
const { children, content, drawer, ...props } = reactProps;
|
|
153
|
+
return (_jsxs("tui-drawer", { location: "bottom", ...props, children: [content, drawer, children] }));
|
|
183
154
|
};
|
|
184
|
-
|
|
185
|
-
const { children, ...props } = reactProps;
|
|
186
|
-
return ((
|
|
155
|
+
Drawer.left = function DrawerLeft(reactProps) {
|
|
156
|
+
const { children, content, drawer, ...props } = reactProps;
|
|
157
|
+
return (_jsxs("tui-drawer", { location: "left", ...props, children: [content, drawer, children] }));
|
|
187
158
|
};
|
|
188
|
-
const Tabs = function Tabs(reactProps) {
|
|
159
|
+
export const Tabs = function Tabs(reactProps) {
|
|
189
160
|
const { children, ...props } = reactProps;
|
|
190
|
-
return (
|
|
161
|
+
return _jsx("tui-tabs", { ...props, children: children });
|
|
191
162
|
};
|
|
192
|
-
|
|
193
|
-
exports.Tabs.Section = function SliderHorizontal(reactProps) {
|
|
163
|
+
Tabs.Section = function SliderHorizontal(reactProps) {
|
|
194
164
|
const { children, ...props } = reactProps;
|
|
195
|
-
return (
|
|
165
|
+
return _jsx("tui-tabs-section", { ...props, children: children });
|
|
196
166
|
};
|
|
197
167
|
//# sourceMappingURL=components.js.map
|
package/.dist/components.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.js","sourceRoot":"","sources":["../lib/components.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"components.js","sourceRoot":"","sources":["../lib/components.tsx"],"names":[],"mappings":"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"}
|
package/.dist/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './preact';
|
|
2
|
-
export * from './components';
|
|
1
|
+
export * from './preact.js';
|
|
2
|
+
export * from './components.js';
|
package/.dist/index.js
CHANGED
|
@@ -1,19 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./preact"), exports);
|
|
18
|
-
__exportStar(require("./components"), exports);
|
|
1
|
+
export * from './preact.js';
|
|
2
|
+
export * from './components.js';
|
|
19
3
|
//# sourceMappingURL=index.js.map
|
package/.dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA"}
|
package/.dist/preact.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { Screen, type ScreenOptions, ViewProps } from '@teaui/core';
|
|
3
|
-
import type { CheckboxProps, CollapsibleTextProps, ConsoleProps, DigitsProps, HeaderProps, InputProps, SeparatorProps, SliderProps, SpaceProps, ToggleGroupProps, BoxProps, ButtonProps, CollapsibleProps, ScrollableProps, StackProps, StyleProps, TextProps, AccordionProps, AccordionSectionProps, DrawerProps, TabsProps, TabsSectionProps } from './components';
|
|
4
|
-
declare module '
|
|
5
|
-
namespace
|
|
1
|
+
import type { ComponentChildren } from 'preact';
|
|
2
|
+
import { Screen, type ScreenOptions, ViewProps, Window as WrWindow } from '@teaui/core';
|
|
3
|
+
import type { CheckboxProps, CollapsibleTextProps, ConsoleProps, DigitsProps, HeaderProps, InputProps, SeparatorProps, SliderProps, SpaceProps, ToggleGroupProps, BoxProps, ButtonProps, CollapsibleProps, ScrollableProps, StackProps, StyleProps, TextProps, AccordionProps, AccordionSectionProps, DrawerProps, TabsProps, TabsSectionProps } from './components.js';
|
|
4
|
+
declare module 'preact' {
|
|
5
|
+
namespace JSX {
|
|
6
6
|
interface IntrinsicElements {
|
|
7
7
|
'tui-br': {};
|
|
8
8
|
'tui-checkbox': CheckboxProps;
|
|
@@ -36,4 +36,5 @@ declare module 'react' {
|
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
|
-
export declare function
|
|
39
|
+
export declare function render(screen: Screen, window: WrWindow, component: ComponentChildren): () => void;
|
|
40
|
+
export declare function run(component: ComponentChildren, options?: Partial<ScreenOptions>): Promise<[Screen, WrWindow, ComponentChildren, () => void]>;
|
package/.dist/preact.js
CHANGED
|
@@ -1,135 +1,139 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const preact_1 = require("preact");
|
|
5
|
-
const core_1 = require("@teaui/core");
|
|
6
|
-
const TextReact_1 = require("./components/TextReact");
|
|
1
|
+
import { render as preactRender, options } from 'preact';
|
|
2
|
+
import { Accordion as WrAccordion, Box as WrBox, Button as WrButton, Checkbox as WrCheckbox, Collapsible as WrCollapsible, CollapsibleText as WrCollapsibleText, ConsoleLog as WrConsoleLog, Container, Digits as WrDigits, H1, H2, H3, H4, H5, H6, Drawer as WrDrawer, ToggleGroup as WrToggleGroup, Input as WrInput, Screen, Scrollable as WrScrollable, Separator as WrSeparator, Slider as WrSlider, Space as WrSpace, Stack as WrStack, Tabs as WrTabs, Window as WrWindow, } from '@teaui/core';
|
|
3
|
+
import { TextContainer, TextLiteral, TextProvider, TextStyle, } from './components/TextReact.js';
|
|
7
4
|
function createView(type, props) {
|
|
5
|
+
// Strip children/child from props before passing to constructors
|
|
6
|
+
const { children, child, ...viewProps } = props;
|
|
8
7
|
switch (type) {
|
|
9
8
|
case 'text':
|
|
10
|
-
return new
|
|
9
|
+
return new TextLiteral(String(viewProps.text) ?? '');
|
|
11
10
|
case 'br':
|
|
12
11
|
case 'tui-br':
|
|
13
|
-
return new
|
|
12
|
+
return new TextLiteral('\n');
|
|
14
13
|
case 'checkbox':
|
|
15
14
|
case 'tui-checkbox':
|
|
16
|
-
return new
|
|
15
|
+
return new WrCheckbox(viewProps);
|
|
17
16
|
case 'collapsible-text':
|
|
18
17
|
case 'tui-collapsible-text':
|
|
19
|
-
return new
|
|
18
|
+
return new WrCollapsibleText(viewProps);
|
|
20
19
|
case 'console':
|
|
21
20
|
case 'tui-console':
|
|
22
|
-
return new
|
|
21
|
+
return new WrConsoleLog(viewProps);
|
|
23
22
|
case 'digits':
|
|
24
23
|
case 'tui-digits':
|
|
25
|
-
return new
|
|
24
|
+
return new WrDigits(viewProps);
|
|
26
25
|
case 'h1':
|
|
27
26
|
case 'tui-h1':
|
|
28
|
-
return
|
|
27
|
+
return H1(viewProps.text ?? '');
|
|
29
28
|
case 'h2':
|
|
30
29
|
case 'tui-h2':
|
|
31
|
-
return
|
|
30
|
+
return H2(viewProps.text ?? '');
|
|
32
31
|
case 'h3':
|
|
33
32
|
case 'tui-h3':
|
|
34
|
-
return
|
|
33
|
+
return H3(viewProps.text ?? '');
|
|
35
34
|
case 'h4':
|
|
36
35
|
case 'tui-h4':
|
|
37
|
-
return
|
|
36
|
+
return H4(viewProps.text ?? '');
|
|
38
37
|
case 'h5':
|
|
39
38
|
case 'tui-h5':
|
|
40
|
-
return
|
|
39
|
+
return H5(viewProps.text ?? '');
|
|
41
40
|
case 'h6':
|
|
42
41
|
case 'tui-h6':
|
|
43
|
-
return
|
|
42
|
+
return H6(viewProps.text ?? '');
|
|
44
43
|
case 'toggle-group':
|
|
45
44
|
case 'tui-toggle-group':
|
|
46
|
-
return new
|
|
45
|
+
return new WrToggleGroup(viewProps);
|
|
47
46
|
case 'input':
|
|
48
47
|
case 'tui-input':
|
|
49
|
-
return new
|
|
48
|
+
return new WrInput(viewProps);
|
|
50
49
|
case 'literal':
|
|
51
50
|
case 'tui-literal':
|
|
52
|
-
return new
|
|
51
|
+
return new TextLiteral(viewProps.text ?? '');
|
|
53
52
|
case 'separator':
|
|
54
53
|
case 'tui-separator':
|
|
55
|
-
return new
|
|
54
|
+
return new WrSeparator(viewProps);
|
|
56
55
|
case 'slider':
|
|
57
56
|
case 'tui-slider':
|
|
58
|
-
return new
|
|
57
|
+
return new WrSlider(viewProps);
|
|
59
58
|
case 'space':
|
|
60
59
|
case 'tui-space':
|
|
61
|
-
return new
|
|
60
|
+
return new WrSpace(viewProps);
|
|
62
61
|
// case 'Tree':
|
|
63
62
|
// return
|
|
64
63
|
case 'box':
|
|
65
64
|
case 'tui-box':
|
|
66
|
-
return new
|
|
65
|
+
return new WrBox(viewProps);
|
|
67
66
|
case 'button':
|
|
68
67
|
case 'tui-button':
|
|
69
|
-
return new
|
|
68
|
+
return new WrButton(viewProps);
|
|
70
69
|
case 'collapsible':
|
|
71
70
|
case 'tui-collapsible':
|
|
72
|
-
return new
|
|
71
|
+
return new WrCollapsible(viewProps);
|
|
73
72
|
case 'scrollable':
|
|
74
73
|
case 'tui-scrollable':
|
|
75
|
-
return new
|
|
74
|
+
return new WrScrollable(viewProps);
|
|
76
75
|
case 'stack':
|
|
77
76
|
case 'tui-stack':
|
|
78
|
-
return new
|
|
77
|
+
return new WrStack(viewProps);
|
|
79
78
|
case 'style':
|
|
80
79
|
case 'tui-style':
|
|
81
|
-
return new
|
|
80
|
+
return new TextStyle(viewProps);
|
|
82
81
|
case 'tui-text':
|
|
83
|
-
return new
|
|
82
|
+
return new TextProvider(viewProps);
|
|
84
83
|
case 'accordion':
|
|
85
84
|
case 'tui-accordion':
|
|
86
|
-
return new
|
|
85
|
+
return new WrAccordion(viewProps);
|
|
87
86
|
case 'accordion-section':
|
|
88
87
|
case 'tui-accordion-section':
|
|
89
|
-
return new
|
|
88
|
+
return new WrAccordion.Section(viewProps);
|
|
90
89
|
case 'drawer':
|
|
91
90
|
case 'tui-drawer':
|
|
92
|
-
return new
|
|
91
|
+
return new WrDrawer(viewProps);
|
|
93
92
|
case 'tabs':
|
|
94
93
|
case 'tui-tabs':
|
|
95
|
-
return new
|
|
94
|
+
return new WrTabs(viewProps);
|
|
96
95
|
case 'tabs-section':
|
|
97
96
|
case 'tui-tabs-section':
|
|
98
|
-
return new
|
|
99
|
-
case 'window':
|
|
97
|
+
return new WrTabs.Section(viewProps);
|
|
100
98
|
case 'tui-window':
|
|
101
|
-
return new
|
|
99
|
+
return new WrWindow();
|
|
102
100
|
default:
|
|
103
|
-
throw Error(`Unknown type ${type}`);
|
|
101
|
+
throw new Error(`Unknown type: ${type}`);
|
|
104
102
|
}
|
|
105
103
|
}
|
|
106
|
-
const defer = Promise
|
|
104
|
+
const defer = typeof Promise == 'function'
|
|
105
|
+
? (fn) => Promise.resolve().then(fn)
|
|
106
|
+
: setTimeout;
|
|
107
107
|
function removeFromTextContainer(container, child) {
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
108
|
+
for (const viewChild of container.children) {
|
|
109
|
+
if (viewChild === child) {
|
|
110
|
+
container.removeChild(viewChild);
|
|
111
|
+
return true;
|
|
112
|
+
}
|
|
113
|
+
else if (viewChild instanceof TextContainer) {
|
|
114
|
+
const textChild = viewChild.children.find(textChild => textChild === child);
|
|
115
|
+
if (textChild) {
|
|
116
|
+
viewChild.removeChild(textChild);
|
|
117
|
+
return true;
|
|
114
118
|
}
|
|
115
|
-
return;
|
|
116
119
|
}
|
|
117
120
|
}
|
|
121
|
+
return false;
|
|
118
122
|
}
|
|
119
123
|
function removeChild(container, child) {
|
|
120
124
|
if (child.parent === container) {
|
|
121
125
|
container.removeChild(child);
|
|
122
126
|
}
|
|
123
|
-
else if (child instanceof
|
|
127
|
+
else if (child instanceof TextLiteral || child instanceof TextStyle) {
|
|
124
128
|
removeFromTextContainer(container, child);
|
|
125
129
|
}
|
|
126
130
|
}
|
|
127
131
|
function appendChild(parentInstance, child, before) {
|
|
128
|
-
if (parentInstance instanceof
|
|
129
|
-
(child instanceof
|
|
132
|
+
if (parentInstance instanceof TextStyle &&
|
|
133
|
+
(child instanceof TextLiteral || child instanceof TextStyle)) {
|
|
130
134
|
// do not do the TextContainer song and dance
|
|
131
135
|
}
|
|
132
|
-
else if (child instanceof
|
|
136
|
+
else if (child instanceof TextLiteral || child instanceof TextStyle) {
|
|
133
137
|
// find the last child (checking 'before')
|
|
134
138
|
let lastChild = parentInstance.children.at(-1);
|
|
135
139
|
if (before) {
|
|
@@ -139,11 +143,11 @@ function appendChild(parentInstance, child, before) {
|
|
|
139
143
|
}
|
|
140
144
|
}
|
|
141
145
|
let textContainer;
|
|
142
|
-
if (lastChild instanceof
|
|
146
|
+
if (lastChild instanceof TextContainer) {
|
|
143
147
|
textContainer = lastChild;
|
|
144
148
|
}
|
|
145
149
|
else {
|
|
146
|
-
textContainer = new
|
|
150
|
+
textContainer = new TextContainer();
|
|
147
151
|
parentInstance.add(textContainer);
|
|
148
152
|
}
|
|
149
153
|
textContainer.add(child);
|
|
@@ -168,17 +172,18 @@ class RendererElement {
|
|
|
168
172
|
props = {};
|
|
169
173
|
prevProps;
|
|
170
174
|
node;
|
|
171
|
-
nodeType
|
|
172
|
-
constructor(renderer, localName) {
|
|
175
|
+
nodeType;
|
|
176
|
+
constructor(renderer, localName, nodeType = 1) {
|
|
173
177
|
this.renderer = renderer;
|
|
174
178
|
this.localName = localName;
|
|
179
|
+
this.nodeType = nodeType;
|
|
175
180
|
this._commit = this._commit.bind(this);
|
|
176
181
|
}
|
|
177
182
|
set data(text) {
|
|
178
183
|
this.setAttribute('text', String(text));
|
|
179
184
|
}
|
|
180
185
|
addEventListener(event, func) {
|
|
181
|
-
this.setAttribute(`on${event}`,
|
|
186
|
+
this.setAttribute(`on${event}`, func);
|
|
182
187
|
}
|
|
183
188
|
setAttribute(name, value) {
|
|
184
189
|
if (this.node && !this.prevProps) {
|
|
@@ -188,6 +193,10 @@ class RendererElement {
|
|
|
188
193
|
this.props[name] = value;
|
|
189
194
|
}
|
|
190
195
|
removeAttribute(name) {
|
|
196
|
+
if (this.node && !this.prevProps) {
|
|
197
|
+
this.prevProps = Object.assign({}, this.props);
|
|
198
|
+
defer(this._commit);
|
|
199
|
+
}
|
|
191
200
|
delete this.props[name];
|
|
192
201
|
}
|
|
193
202
|
_attach() {
|
|
@@ -244,13 +253,13 @@ class RendererElement {
|
|
|
244
253
|
}
|
|
245
254
|
function createRendererDom(renderer) {
|
|
246
255
|
function createElement(type) {
|
|
247
|
-
return new RendererElement(renderer, type);
|
|
256
|
+
return new RendererElement(renderer, type, 1);
|
|
248
257
|
}
|
|
249
258
|
function createElementNS(_, type) {
|
|
250
|
-
return new RendererElement(renderer, type);
|
|
259
|
+
return new RendererElement(renderer, type, 1);
|
|
251
260
|
}
|
|
252
261
|
function createTextNode(text) {
|
|
253
|
-
const node =
|
|
262
|
+
const node = new RendererElement(renderer, 'text', 3);
|
|
254
263
|
node.props.text = String(text);
|
|
255
264
|
return node;
|
|
256
265
|
}
|
|
@@ -259,39 +268,68 @@ function createRendererDom(renderer) {
|
|
|
259
268
|
}
|
|
260
269
|
return { createElement, createElementNS, createTextNode, createRoot };
|
|
261
270
|
}
|
|
271
|
+
let _rerender;
|
|
272
|
+
// Hook into Preact's diffed option to trigger screen re-renders after commits
|
|
273
|
+
const prevDiffed = options.diffed;
|
|
274
|
+
options.diffed = (vnode) => {
|
|
275
|
+
prevDiffed?.(vnode);
|
|
276
|
+
_rerender?.();
|
|
277
|
+
};
|
|
262
278
|
const dom = createRendererDom({
|
|
263
279
|
create(type, props) {
|
|
264
280
|
return createView(type, props);
|
|
265
281
|
},
|
|
266
282
|
insert(parent, node, before) {
|
|
267
|
-
if (!(parent instanceof
|
|
283
|
+
if (!(parent instanceof Container)) {
|
|
268
284
|
return;
|
|
269
285
|
}
|
|
270
286
|
appendChild(parent, node, before);
|
|
271
287
|
},
|
|
272
288
|
remove(parent, node) {
|
|
273
|
-
if (!(parent instanceof
|
|
289
|
+
if (!(parent instanceof Container)) {
|
|
274
290
|
return;
|
|
275
291
|
}
|
|
276
292
|
removeChild(parent, node);
|
|
277
293
|
},
|
|
278
294
|
update(node, props) {
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
node.text =
|
|
295
|
+
const { children, child, ...updateProps } = props;
|
|
296
|
+
if (node instanceof TextLiteral) {
|
|
297
|
+
node.text = updateProps.text ?? '';
|
|
282
298
|
}
|
|
283
299
|
else {
|
|
284
|
-
node.update(
|
|
300
|
+
node.update(updateProps);
|
|
285
301
|
}
|
|
286
302
|
},
|
|
287
303
|
});
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
304
|
+
// Preact accesses `document` directly (not ownerDocument), so we must
|
|
305
|
+
// provide a global document shim with our custom DOM factory methods.
|
|
306
|
+
const fakeDocument = Object.create(null);
|
|
307
|
+
Object.assign(fakeDocument, dom);
|
|
308
|
+
globalThis.document = fakeDocument;
|
|
309
|
+
export function render(screen, window, component) {
|
|
310
|
+
_rerender = () => {
|
|
311
|
+
screen.render();
|
|
312
|
+
};
|
|
291
313
|
const root = dom.createRoot();
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
314
|
+
root.ownerDocument = fakeDocument;
|
|
315
|
+
preactRender(component, root);
|
|
316
|
+
// Reparent created views into the actual window
|
|
317
|
+
if (root.node instanceof WrWindow) {
|
|
318
|
+
for (const child of [...root.node.children]) {
|
|
319
|
+
root.node.removeChild(child);
|
|
320
|
+
window.add(child);
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
return function unmount() {
|
|
324
|
+
preactRender(null, root);
|
|
325
|
+
_rerender = undefined;
|
|
326
|
+
};
|
|
327
|
+
}
|
|
328
|
+
export async function run(component, options) {
|
|
329
|
+
// Start the screen first, then render (matching React package behavior)
|
|
330
|
+
const window = new WrWindow();
|
|
331
|
+
const [screen, _] = await Screen.start(window, options);
|
|
332
|
+
const unmount = render(screen, window, component);
|
|
333
|
+
return [screen, window, component, unmount];
|
|
296
334
|
}
|
|
297
335
|
//# sourceMappingURL=preact.js.map
|
package/.dist/preact.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preact.js","sourceRoot":"","sources":["../lib/preact.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"preact.js","sourceRoot":"","sources":["../lib/preact.tsx"],"names":[],"mappings":"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"}
|
package/README.md
CHANGED
|
@@ -1,31 +1,195 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @teaui/preact
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
Preact renderer for [TeaUI](https://github.com/colinta/teaui). Write fullscreen terminal UIs with Preact components, hooks, signals, and JSX.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pnpm install @teaui/core @teaui/preact preact
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
5
12
|
|
|
6
13
|
```tsx
|
|
7
|
-
import {useReducer} from 'preact/
|
|
14
|
+
import {useReducer} from 'preact/hooks'
|
|
8
15
|
import {interceptConsoleLog} from '@teaui/core'
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
Button,
|
|
12
|
-
Stack,
|
|
13
|
-
run,
|
|
14
|
-
} from '@teaui/preact'
|
|
15
|
-
|
|
16
|
-
// Recommended:
|
|
16
|
+
import {Box, Button, Stack, run} from '@teaui/preact'
|
|
17
|
+
|
|
17
18
|
interceptConsoleLog()
|
|
18
19
|
|
|
19
20
|
function App() {
|
|
20
|
-
const [bang,
|
|
21
|
-
|
|
22
|
-
return
|
|
23
|
-
<
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
21
|
+
const [bang, addBang] = useReducer((s: string) => s + '!', '')
|
|
22
|
+
|
|
23
|
+
return (
|
|
24
|
+
<Box border="single">
|
|
25
|
+
<Stack.down>
|
|
26
|
+
Hello TeaUI{bang}
|
|
27
|
+
<Button onClick={addBang}>Click me</Button>
|
|
28
|
+
</Stack.down>
|
|
29
|
+
</Box>
|
|
30
|
+
)
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
run(<App />)
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Compile and run:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
pnpm tsc && node .dist/index.js
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## API
|
|
43
|
+
|
|
44
|
+
### `run(element, options?)`
|
|
45
|
+
|
|
46
|
+
Creates a `Window` and `Screen`, renders the Preact element tree, and enters fullscreen mode.
|
|
47
|
+
|
|
48
|
+
```ts
|
|
49
|
+
const [screen, window, component, unmount] = await run(<App />)
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Returns `[Screen, Window, ComponentChildren, unmount]`. Call `unmount()` to tear down the Preact tree.
|
|
53
|
+
|
|
54
|
+
### `render(screen, window, element)`
|
|
55
|
+
|
|
56
|
+
Lower-level alternative — mount a Preact element into an existing `Screen` and `Window`.
|
|
57
|
+
|
|
58
|
+
```ts
|
|
59
|
+
import {Screen, Window} from '@teaui/core'
|
|
60
|
+
import {render} from '@teaui/preact'
|
|
61
|
+
|
|
62
|
+
const window = new Window()
|
|
63
|
+
const [screen] = await Screen.start(window)
|
|
64
|
+
const unmount = render(screen, window, <App />)
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Returns an `unmount()` function.
|
|
68
|
+
|
|
69
|
+
## Components
|
|
70
|
+
|
|
71
|
+
All components are typed wrappers around TeaUI core views. They accept the same props as the core constructors, with `children` mapped to Preact children.
|
|
72
|
+
|
|
73
|
+
### Views (leaf nodes)
|
|
74
|
+
|
|
75
|
+
| Component | Element | Description |
|
|
76
|
+
|-----------|---------|-------------|
|
|
77
|
+
| `<Br />` | `<tui-br>` | Line break in text |
|
|
78
|
+
| `<Checkbox />` | `<tui-checkbox>` | Toggle checkbox |
|
|
79
|
+
| `<CollapsibleText />` | `<tui-collapsible-text>` | Text that truncates with expand/collapse |
|
|
80
|
+
| `<ConsoleLog />` | `<tui-console>` | Displays intercepted `console.log` output |
|
|
81
|
+
| `<Digits />` | `<tui-digits>` | Large-font digit display |
|
|
82
|
+
| `<H1 />`–`<H6 />` | `<tui-h1>`–`<tui-h6>` | Header text |
|
|
83
|
+
| `<Input />` | `<tui-input>` | Text input field |
|
|
84
|
+
| `<Separator />` | `<tui-separator>` | Horizontal or vertical line |
|
|
85
|
+
| `<Slider />` | `<tui-slider>` | Value slider |
|
|
86
|
+
| `<Space />` | `<tui-space>` | Empty spacer |
|
|
87
|
+
| `<ToggleGroup />` | `<tui-toggle-group>` | Group of toggle options |
|
|
88
|
+
|
|
89
|
+
`Separator` has `.horizontal` and `.vertical` variants. `Slider` has `.horizontal` and `.vertical` variants.
|
|
90
|
+
|
|
91
|
+
### Containers
|
|
92
|
+
|
|
93
|
+
| Component | Element | Description |
|
|
94
|
+
|-----------|---------|-------------|
|
|
95
|
+
| `<Box />` | `<tui-box>` | Box with optional border and padding |
|
|
96
|
+
| `<Button />` | `<tui-button>` | Clickable button |
|
|
97
|
+
| `<Collapsible />` | `<tui-collapsible>` | Toggle between `collapsed` and `expanded` content |
|
|
98
|
+
| `<Scrollable />` | `<tui-scrollable>` | Scrollable content region |
|
|
99
|
+
| `<Stack />` | `<tui-stack>` | Linear layout |
|
|
100
|
+
| `<Text />` | `<tui-text>` | Text container (sets font, alignment, wrap) |
|
|
101
|
+
| `<Style />` | `<tui-style>` | Inline text styles (bold, italic, etc.) |
|
|
102
|
+
|
|
103
|
+
`Stack` has `.down`, `.up`, `.left`, and `.right` variants.
|
|
104
|
+
|
|
105
|
+
### Complex Containers
|
|
106
|
+
|
|
107
|
+
| Component | Element | Description |
|
|
108
|
+
|-----------|---------|-------------|
|
|
109
|
+
| `<Accordion />` | `<tui-accordion>` | Expandable section group |
|
|
110
|
+
| `<Accordion.Section />` | `<tui-accordion-section>` | Section within an accordion |
|
|
111
|
+
| `<Drawer />` | `<tui-drawer>` | Panel that slides in from an edge |
|
|
112
|
+
| `<Tabs />` | `<tui-tabs>` | Tabbed container |
|
|
113
|
+
| `<Tabs.Section />` | `<tui-tabs-section>` | Tab within tabs |
|
|
114
|
+
| `<Tree />` | `<tui-tree>` | Tree view with expandable nodes |
|
|
115
|
+
|
|
116
|
+
`Drawer` has `.top`, `.right`, `.bottom`, and `.left` variants. Each accepts `content` and `drawer` props for the two panes.
|
|
117
|
+
|
|
118
|
+
### Intrinsic Elements
|
|
119
|
+
|
|
120
|
+
You can also use the `tui-` prefixed JSX elements directly:
|
|
121
|
+
|
|
122
|
+
```tsx
|
|
123
|
+
<tui-stack direction="down">
|
|
124
|
+
<tui-box border="single" width={20}>
|
|
125
|
+
<tui-text alignment="center">Hello</tui-text>
|
|
126
|
+
</tui-box>
|
|
127
|
+
</tui-stack>
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## Text Handling
|
|
131
|
+
|
|
132
|
+
String literals are rendered as `TextLiteral` nodes, which are automatically grouped into `TextContainer`s for layout:
|
|
133
|
+
|
|
134
|
+
```tsx
|
|
135
|
+
<Stack.down>
|
|
136
|
+
hello {/* TextLiteral → TextContainer #1 */}
|
|
137
|
+
<Br /> {/* TextLiteral → TextContainer #1 */}
|
|
138
|
+
<Box /> {/* Box breaks the text group */}
|
|
139
|
+
goodbye {/* TextLiteral → TextContainer #2 */}
|
|
140
|
+
</Stack.down>
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Use `<Text>` to control font, alignment, and word wrap. Use `<Style>` for inline formatting (bold, italic, etc.):
|
|
144
|
+
|
|
145
|
+
```tsx
|
|
146
|
+
<Text alignment="center" wrap>
|
|
147
|
+
This is <Style bold>important</Style> text.
|
|
148
|
+
</Text>
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## Preact Features
|
|
152
|
+
|
|
153
|
+
| Feature | Status |
|
|
154
|
+
|---------|--------|
|
|
155
|
+
| Hooks (`useState`, `useReducer`, `useEffect`, etc.) | ✅ Works |
|
|
156
|
+
| Context (`useContext`, providers) | ✅ Works |
|
|
157
|
+
| Refs (`useRef`, callback refs) | ✅ Works |
|
|
158
|
+
| Signals (`@preact/signals`) | ✅ Compatible |
|
|
159
|
+
| Error Boundaries | Not yet tested |
|
|
160
|
+
|
|
161
|
+
## TypeScript Configuration
|
|
162
|
+
|
|
163
|
+
The package uses Preact's JSX transform. Your `tsconfig.json` should include:
|
|
164
|
+
|
|
165
|
+
```json
|
|
166
|
+
{
|
|
167
|
+
"compilerOptions": {
|
|
168
|
+
"jsx": "react-jsx",
|
|
169
|
+
"jsxImportSource": "preact"
|
|
170
|
+
}
|
|
28
171
|
}
|
|
172
|
+
```
|
|
29
173
|
|
|
30
|
-
|
|
174
|
+
## Architecture
|
|
175
|
+
|
|
176
|
+
```
|
|
177
|
+
@teaui/preact
|
|
178
|
+
├── lib/
|
|
179
|
+
│ ├── index.ts # Re-exports renderer + components
|
|
180
|
+
│ ├── preact.tsx # Fake-DOM renderer, render(), run()
|
|
181
|
+
│ ├── components.tsx # Typed Preact wrappers + JSX IntrinsicElements
|
|
182
|
+
│ └── components/
|
|
183
|
+
│ └── TextReact.ts # TextLiteral, TextContainer, TextProvider, TextStyle
|
|
184
|
+
└── tsconfig.json
|
|
31
185
|
```
|
|
186
|
+
|
|
187
|
+
**`preact.tsx`** implements a custom DOM-like abstraction (`RendererElement`) that Preact renders into. Each `RendererElement` lazily creates its corresponding TeaUI view on first attach. Attribute changes are batched via microtask deferral — multiple `setAttribute` calls in the same synchronous block are committed together. Preact's `options.diffed` hook triggers `screen.render()` after each commit so updates appear on screen.
|
|
188
|
+
|
|
189
|
+
**`components.tsx`** provides typed Preact component wrappers for all TeaUI views. Each component maps its props to the corresponding `tui-` intrinsic element. The file also declares `preact.JSX.IntrinsicElements` so `tui-` elements can be used directly in JSX.
|
|
190
|
+
|
|
191
|
+
**`components/TextReact.ts`** defines the text rendering architecture. Adjacent `TextLiteral` nodes are grouped into a `TextContainer`, which handles layout. `TextProvider` (`<Text>`) sets text properties (font, alignment, wrap) for descendant text. `TextStyle` (`<Style>`) applies inline SGR styles without affecting layout properties.
|
|
192
|
+
|
|
193
|
+
## License
|
|
194
|
+
|
|
195
|
+
MIT
|
package/package.json
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
+
"type": "module",
|
|
2
3
|
"name": "@teaui/preact",
|
|
3
4
|
"description": "Preact renderer for TeaUI",
|
|
4
5
|
"author": "Colin T.A. Gray <colinta@colinta.com>",
|
|
5
6
|
"contributors": [],
|
|
6
|
-
"version": "1.
|
|
7
|
+
"version": "1.4.8",
|
|
7
8
|
"license": "MIT",
|
|
8
9
|
"preferGlobal": false,
|
|
9
10
|
"repository": {
|
|
@@ -20,7 +21,7 @@
|
|
|
20
21
|
"url": "http://github.com/colinta/teaui/issues"
|
|
21
22
|
},
|
|
22
23
|
"keywords": [
|
|
23
|
-
"
|
|
24
|
+
"preact",
|
|
24
25
|
"curses",
|
|
25
26
|
"tui",
|
|
26
27
|
"terminal",
|
|
@@ -28,7 +29,7 @@
|
|
|
28
29
|
"terminal-ui"
|
|
29
30
|
],
|
|
30
31
|
"tags": [
|
|
31
|
-
"
|
|
32
|
+
"preact",
|
|
32
33
|
"curses",
|
|
33
34
|
"tui",
|
|
34
35
|
"terminal"
|
|
@@ -39,10 +40,10 @@
|
|
|
39
40
|
"peerDependencies": {},
|
|
40
41
|
"dependencies": {
|
|
41
42
|
"preact": "^10.24.3",
|
|
42
|
-
"@teaui/core": "1.
|
|
43
|
+
"@teaui/core": "1.4.8"
|
|
43
44
|
},
|
|
44
45
|
"devDependencies": {
|
|
45
|
-
"@teaui/shared": "1.
|
|
46
|
+
"@teaui/shared": "1.4.8"
|
|
46
47
|
},
|
|
47
48
|
"scripts": {
|
|
48
49
|
"clean": "rm -rf .dist/",
|