@opentui/solid 0.1.63 → 0.1.65
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/index.d.ts +4 -0
- package/index.js +32 -8
- package/jsx-runtime.d.ts +2 -0
- package/package.json +2 -2
- package/src/elements/index.d.ts +8 -1
- package/src/types/elements.d.ts +3 -0
package/dist/index.d.ts
CHANGED
|
@@ -45,6 +45,7 @@ export function getComponentCatalogue(): {
|
|
|
45
45
|
i: typeof ItalicSpanRenderable;
|
|
46
46
|
u: typeof UnderlineSpanRenderable;
|
|
47
47
|
br: typeof LineBreakRenderable;
|
|
48
|
+
a: typeof LinkRenderable;
|
|
48
49
|
};
|
|
49
50
|
export function extend(objects: any): void;
|
|
50
51
|
export var effect: typeof createRenderEffect;
|
|
@@ -72,6 +73,7 @@ export namespace componentCatalogue {
|
|
|
72
73
|
export { ItalicSpanRenderable as i };
|
|
73
74
|
export { UnderlineSpanRenderable as u };
|
|
74
75
|
export { LineBreakRenderable as br };
|
|
76
|
+
export { LinkRenderable as a };
|
|
75
77
|
}
|
|
76
78
|
export namespace baseComponents { }
|
|
77
79
|
export function _render(code: any, element: any): undefined;
|
|
@@ -91,6 +93,8 @@ export class SlotRenderable extends SlotBaseRenderable {
|
|
|
91
93
|
}
|
|
92
94
|
export var RendererContext: import("solid-js").Context<any>;
|
|
93
95
|
export function Portal(props: any): SlotRenderable;
|
|
96
|
+
export class LinkRenderable extends SpanRenderable {
|
|
97
|
+
}
|
|
94
98
|
export class LineBreakRenderable extends SpanRenderable {
|
|
95
99
|
add(): number;
|
|
96
100
|
}
|
package/index.js
CHANGED
|
@@ -544,12 +544,16 @@ var {
|
|
|
544
544
|
return;
|
|
545
545
|
}
|
|
546
546
|
if (isTextNodeRenderable(node)) {
|
|
547
|
-
if (name
|
|
547
|
+
if (name === "href") {
|
|
548
|
+
node.link = { url: value };
|
|
549
|
+
return;
|
|
550
|
+
}
|
|
551
|
+
if (name === "style") {
|
|
552
|
+
node.attributes |= createTextAttributes(value);
|
|
553
|
+
node.fg = value.fg ? parseColor(value.fg) : node.fg;
|
|
554
|
+
node.bg = value.bg ? parseColor(value.bg) : node.bg;
|
|
548
555
|
return;
|
|
549
556
|
}
|
|
550
|
-
node.attributes |= createTextAttributes(value);
|
|
551
|
-
node.fg = value.fg ? parseColor(value.fg) : node.fg;
|
|
552
|
-
node.bg = value.bg ? parseColor(value.bg) : node.bg;
|
|
553
557
|
return;
|
|
554
558
|
}
|
|
555
559
|
switch (name) {
|
|
@@ -838,7 +842,7 @@ class SpanRenderable extends TextNodeRenderable3 {
|
|
|
838
842
|
this._ctx = _ctx;
|
|
839
843
|
}
|
|
840
844
|
}
|
|
841
|
-
var textNodeKeys = ["span", "b", "strong", "i", "em", "u"];
|
|
845
|
+
var textNodeKeys = ["span", "b", "strong", "i", "em", "u", "a"];
|
|
842
846
|
|
|
843
847
|
class TextModifierRenderable extends SpanRenderable {
|
|
844
848
|
constructor(options, modifier) {
|
|
@@ -881,6 +885,16 @@ class LineBreakRenderable extends SpanRenderable {
|
|
|
881
885
|
`);
|
|
882
886
|
}
|
|
883
887
|
}
|
|
888
|
+
|
|
889
|
+
class LinkRenderable extends SpanRenderable {
|
|
890
|
+
constructor(_ctx, options) {
|
|
891
|
+
const linkOptions = {
|
|
892
|
+
...options,
|
|
893
|
+
link: { url: options.href }
|
|
894
|
+
};
|
|
895
|
+
super(null, linkOptions);
|
|
896
|
+
}
|
|
897
|
+
}
|
|
884
898
|
var baseComponents = {
|
|
885
899
|
box: BoxRenderable,
|
|
886
900
|
text: TextRenderable3,
|
|
@@ -899,7 +913,8 @@ var baseComponents = {
|
|
|
899
913
|
em: ItalicSpanRenderable,
|
|
900
914
|
i: ItalicSpanRenderable,
|
|
901
915
|
u: UnderlineSpanRenderable,
|
|
902
|
-
br: LineBreakRenderable
|
|
916
|
+
br: LineBreakRenderable,
|
|
917
|
+
a: LinkRenderable
|
|
903
918
|
};
|
|
904
919
|
var componentCatalogue = { ...baseComponents };
|
|
905
920
|
function extend(objects) {
|
|
@@ -911,10 +926,14 @@ function getComponentCatalogue() {
|
|
|
911
926
|
|
|
912
927
|
// index.ts
|
|
913
928
|
var render = async (node, renderConfig = {}) => {
|
|
929
|
+
let isDisposed = false;
|
|
914
930
|
const renderer = await createCliRenderer({
|
|
915
931
|
...renderConfig,
|
|
916
932
|
onDestroy: () => {
|
|
917
|
-
|
|
933
|
+
if (!isDisposed) {
|
|
934
|
+
isDisposed = true;
|
|
935
|
+
dispose();
|
|
936
|
+
}
|
|
918
937
|
renderConfig.onDestroy?.();
|
|
919
938
|
}
|
|
920
939
|
});
|
|
@@ -929,10 +948,14 @@ var render = async (node, renderConfig = {}) => {
|
|
|
929
948
|
}), renderer.root);
|
|
930
949
|
};
|
|
931
950
|
var testRender = async (node, renderConfig = {}) => {
|
|
951
|
+
let isDisposed = false;
|
|
932
952
|
const testSetup = await createTestRenderer({
|
|
933
953
|
...renderConfig,
|
|
934
954
|
onDestroy: () => {
|
|
935
|
-
|
|
955
|
+
if (!isDisposed) {
|
|
956
|
+
isDisposed = true;
|
|
957
|
+
dispose();
|
|
958
|
+
}
|
|
936
959
|
renderConfig.onDestroy?.();
|
|
937
960
|
}
|
|
938
961
|
});
|
|
@@ -982,6 +1005,7 @@ export {
|
|
|
982
1005
|
SlotRenderable,
|
|
983
1006
|
RendererContext,
|
|
984
1007
|
Portal,
|
|
1008
|
+
LinkRenderable,
|
|
985
1009
|
LineBreakRenderable,
|
|
986
1010
|
LayoutSlotRenderable,
|
|
987
1011
|
ItalicSpanRenderable,
|
package/jsx-runtime.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import type {
|
|
|
5
5
|
CodeProps,
|
|
6
6
|
ExtendedIntrinsicElements,
|
|
7
7
|
InputProps,
|
|
8
|
+
LinkProps,
|
|
8
9
|
OpenTUIComponents,
|
|
9
10
|
ScrollBoxProps,
|
|
10
11
|
SelectProps,
|
|
@@ -39,6 +40,7 @@ declare namespace JSX {
|
|
|
39
40
|
em: SpanProps
|
|
40
41
|
u: SpanProps
|
|
41
42
|
br: {}
|
|
43
|
+
a: LinkProps
|
|
42
44
|
}
|
|
43
45
|
|
|
44
46
|
interface ElementChildrenAttribute {
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"types": "index.d.ts",
|
|
6
6
|
"type": "module",
|
|
7
|
-
"version": "0.1.
|
|
7
|
+
"version": "0.1.65",
|
|
8
8
|
"description": "SolidJS renderer for OpenTUI",
|
|
9
9
|
"license": "MIT",
|
|
10
10
|
"repository": {
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"@babel/core": "7.28.0",
|
|
33
33
|
"@babel/preset-typescript": "7.27.1",
|
|
34
|
-
"@opentui/core": "0.1.
|
|
34
|
+
"@opentui/core": "0.1.65",
|
|
35
35
|
"babel-plugin-module-resolver": "5.0.2",
|
|
36
36
|
"babel-preset-solid": "1.9.9",
|
|
37
37
|
"s-js": "^0.4.9"
|
package/src/elements/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ declare class SpanRenderable extends TextNodeRenderable {
|
|
|
7
7
|
private readonly _ctx;
|
|
8
8
|
constructor(_ctx: RenderContext | null, options: TextNodeOptions);
|
|
9
9
|
}
|
|
10
|
-
export declare const textNodeKeys: readonly ["span", "b", "strong", "i", "em", "u"];
|
|
10
|
+
export declare const textNodeKeys: readonly ["span", "b", "strong", "i", "em", "u", "a"];
|
|
11
11
|
export type TextNodeKey = (typeof textNodeKeys)[number];
|
|
12
12
|
declare class TextModifierRenderable extends SpanRenderable {
|
|
13
13
|
constructor(options: any, modifier?: TextNodeKey);
|
|
@@ -25,6 +25,12 @@ export declare class LineBreakRenderable extends SpanRenderable {
|
|
|
25
25
|
constructor(_ctx: RenderContext | null, options: TextNodeOptions);
|
|
26
26
|
add(): number;
|
|
27
27
|
}
|
|
28
|
+
export interface LinkOptions extends TextNodeOptions {
|
|
29
|
+
href: string;
|
|
30
|
+
}
|
|
31
|
+
export declare class LinkRenderable extends SpanRenderable {
|
|
32
|
+
constructor(_ctx: RenderContext | null, options: LinkOptions);
|
|
33
|
+
}
|
|
28
34
|
export declare const baseComponents: {
|
|
29
35
|
box: typeof BoxRenderable;
|
|
30
36
|
text: typeof TextRenderable;
|
|
@@ -44,6 +50,7 @@ export declare const baseComponents: {
|
|
|
44
50
|
i: typeof ItalicSpanRenderable;
|
|
45
51
|
u: typeof UnderlineSpanRenderable;
|
|
46
52
|
br: typeof LineBreakRenderable;
|
|
53
|
+
a: typeof LinkRenderable;
|
|
47
54
|
};
|
|
48
55
|
type ComponentCatalogue = Record<string, RenderableConstructor>;
|
|
49
56
|
export declare const componentCatalogue: ComponentCatalogue;
|
package/src/types/elements.d.ts
CHANGED
|
@@ -31,6 +31,9 @@ export type TextProps = ComponentProps<TextOptions, TextRenderable> & {
|
|
|
31
31
|
export type SpanProps = ComponentProps<{}, TextNodeRenderable> & {
|
|
32
32
|
children?: TextChildren | Array<TextChildren>;
|
|
33
33
|
};
|
|
34
|
+
export type LinkProps = SpanProps & {
|
|
35
|
+
href: string;
|
|
36
|
+
};
|
|
34
37
|
export type BoxProps = ComponentProps<ContainerProps<BoxOptions>, BoxRenderable>;
|
|
35
38
|
export type InputProps = ComponentProps<InputRenderableOptions, InputRenderable> & {
|
|
36
39
|
focused?: boolean;
|