@opentui/solid 0.1.25 → 0.1.26
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 +6 -3
- package/index.js +12 -20
- package/jsx-runtime.d.ts +2 -0
- package/package.json +2 -2
- package/src/elements/hooks.d.ts +5 -10
- package/src/elements/index.d.ts +2 -1
- package/src/elements/slot.d.ts +1 -0
- package/src/types/elements.d.ts +3 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export function useTimeline(
|
|
1
|
+
export function useTimeline(options?: {}): Timeline;
|
|
2
2
|
export function useTerminalDimensions(): import("solid-js").Accessor<{
|
|
3
3
|
width: any;
|
|
4
4
|
height: any;
|
|
@@ -34,6 +34,7 @@ export function getComponentCatalogue(): {
|
|
|
34
34
|
ascii_font: typeof ASCIIFontRenderable;
|
|
35
35
|
tab_select: typeof TabSelectRenderable2;
|
|
36
36
|
scrollbox: typeof ScrollBoxRenderable;
|
|
37
|
+
code: typeof CodeRenderable;
|
|
37
38
|
span: typeof SpanRenderable;
|
|
38
39
|
strong: typeof BoldSpanRenderable;
|
|
39
40
|
b: typeof BoldSpanRenderable;
|
|
@@ -48,7 +49,6 @@ export var createTextNode: any;
|
|
|
48
49
|
export function createSlotNode(): SlotRenderable;
|
|
49
50
|
export var createElement: any;
|
|
50
51
|
export function createDynamic(component: any, props: any): import("solid-js").Accessor<any>;
|
|
51
|
-
export function createComponentTimeline(options?: {}): Timeline;
|
|
52
52
|
declare var createComponent2: typeof createComponent;
|
|
53
53
|
export namespace componentCatalogue {
|
|
54
54
|
export { BoxRenderable as box };
|
|
@@ -58,6 +58,7 @@ export namespace componentCatalogue {
|
|
|
58
58
|
export { ASCIIFontRenderable as ascii_font };
|
|
59
59
|
export { TabSelectRenderable2 as tab_select };
|
|
60
60
|
export { ScrollBoxRenderable as scrollbox };
|
|
61
|
+
export { CodeRenderable as code };
|
|
61
62
|
export { SpanRenderable as span };
|
|
62
63
|
export { BoldSpanRenderable as strong };
|
|
63
64
|
export { BoldSpanRenderable as b };
|
|
@@ -104,6 +105,7 @@ export function Dynamic(props: any): import("solid-js").Accessor<any>;
|
|
|
104
105
|
export class BoldSpanRenderable extends TextModifierRenderable {
|
|
105
106
|
constructor(options: any);
|
|
106
107
|
}
|
|
108
|
+
import { Timeline } from "@opentui/core";
|
|
107
109
|
import { mergeProps } from "solid-js";
|
|
108
110
|
import { BoxRenderable } from "@opentui/core";
|
|
109
111
|
import { TextRenderable as TextRenderable3 } from "@opentui/core";
|
|
@@ -112,12 +114,12 @@ import { SelectRenderable as SelectRenderable2 } from "@opentui/core";
|
|
|
112
114
|
import { ASCIIFontRenderable } from "@opentui/core";
|
|
113
115
|
import { TabSelectRenderable as TabSelectRenderable2 } from "@opentui/core";
|
|
114
116
|
import { ScrollBoxRenderable } from "@opentui/core";
|
|
117
|
+
import { CodeRenderable } from "@opentui/core";
|
|
115
118
|
declare class SpanRenderable extends TextNodeRenderable3 {
|
|
116
119
|
constructor(_ctx: any, options: any);
|
|
117
120
|
_ctx: any;
|
|
118
121
|
}
|
|
119
122
|
import { createRenderEffect } from "solid-js";
|
|
120
|
-
import { Timeline } from "@opentui/core";
|
|
121
123
|
import { createComponent } from "solid-js";
|
|
122
124
|
declare class TextModifierRenderable extends SpanRenderable {
|
|
123
125
|
}
|
|
@@ -128,6 +130,7 @@ declare class SlotBaseRenderable extends BaseRenderable {
|
|
|
128
130
|
remove(id: any): void;
|
|
129
131
|
insertBefore(obj: any, anchor: any): void;
|
|
130
132
|
getRenderable(id: any): void;
|
|
133
|
+
findDescendantById(id: any): void;
|
|
131
134
|
}
|
|
132
135
|
import { Yoga } from "@opentui/core";
|
|
133
136
|
import { BaseRenderable } from "@opentui/core";
|
package/index.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
// index.ts
|
|
3
|
-
import { createCliRenderer } from "@opentui/core";
|
|
3
|
+
import { createCliRenderer, engine as engine2 } from "@opentui/core";
|
|
4
4
|
import { createTestRenderer } from "@opentui/core/testing";
|
|
5
5
|
|
|
6
6
|
// src/elements/index.ts
|
|
7
7
|
import {
|
|
8
8
|
ASCIIFontRenderable,
|
|
9
9
|
BoxRenderable,
|
|
10
|
+
CodeRenderable,
|
|
10
11
|
InputRenderable as InputRenderable2,
|
|
11
12
|
ScrollBoxRenderable,
|
|
12
13
|
SelectRenderable as SelectRenderable2,
|
|
@@ -18,6 +19,7 @@ import {
|
|
|
18
19
|
|
|
19
20
|
// src/elements/hooks.ts
|
|
20
21
|
import {
|
|
22
|
+
engine,
|
|
21
23
|
Timeline
|
|
22
24
|
} from "@opentui/core";
|
|
23
25
|
import { createContext, createSignal, onCleanup, onMount, useContext } from "solid-js";
|
|
@@ -77,35 +79,20 @@ var useSelectionHandler = (callback) => {
|
|
|
77
79
|
renderer.off("selection", callback);
|
|
78
80
|
});
|
|
79
81
|
};
|
|
80
|
-
var
|
|
81
|
-
const renderer = useRenderer();
|
|
82
|
+
var useTimeline = (options = {}) => {
|
|
82
83
|
const timeline = new Timeline(options);
|
|
83
|
-
const frameCallback = async (dt) => timeline.update(dt);
|
|
84
84
|
onMount(() => {
|
|
85
85
|
if (options.autoplay !== false) {
|
|
86
86
|
timeline.play();
|
|
87
87
|
}
|
|
88
|
-
|
|
88
|
+
engine.register(timeline);
|
|
89
89
|
});
|
|
90
90
|
onCleanup(() => {
|
|
91
|
-
renderer.removeFrameCallback(frameCallback);
|
|
92
91
|
timeline.pause();
|
|
92
|
+
engine.unregister(timeline);
|
|
93
93
|
});
|
|
94
94
|
return timeline;
|
|
95
95
|
};
|
|
96
|
-
var useTimeline = (timeline, initialValue, targetValue, options, startTime = 0) => {
|
|
97
|
-
const [store, setStore] = createSignal(initialValue);
|
|
98
|
-
const { onUpdate, ...animationOptions } = options;
|
|
99
|
-
timeline.add(store(), {
|
|
100
|
-
...targetValue,
|
|
101
|
-
...animationOptions,
|
|
102
|
-
onUpdate: (values) => {
|
|
103
|
-
setStore({ ...values.targets[0] });
|
|
104
|
-
onUpdate?.(values);
|
|
105
|
-
}
|
|
106
|
-
}, startTime);
|
|
107
|
-
return store;
|
|
108
|
-
};
|
|
109
96
|
// src/elements/extras.ts
|
|
110
97
|
import { createEffect, createMemo as createMemo2, getOwner, onCleanup as onCleanup2, runWithOwner, splitProps, untrack as untrack2 } from "solid-js";
|
|
111
98
|
|
|
@@ -756,6 +743,9 @@ class SlotBaseRenderable extends BaseRenderable2 {
|
|
|
756
743
|
return 0;
|
|
757
744
|
}
|
|
758
745
|
requestRender() {}
|
|
746
|
+
findDescendantById(id) {
|
|
747
|
+
return;
|
|
748
|
+
}
|
|
759
749
|
}
|
|
760
750
|
|
|
761
751
|
class TextSlotRenderable extends TextNodeRenderable2 {
|
|
@@ -896,6 +886,7 @@ var baseComponents = {
|
|
|
896
886
|
ascii_font: ASCIIFontRenderable,
|
|
897
887
|
tab_select: TabSelectRenderable2,
|
|
898
888
|
scrollbox: ScrollBoxRenderable,
|
|
889
|
+
code: CodeRenderable,
|
|
899
890
|
span: SpanRenderable,
|
|
900
891
|
strong: BoldSpanRenderable,
|
|
901
892
|
b: BoldSpanRenderable,
|
|
@@ -915,6 +906,7 @@ function getComponentCatalogue() {
|
|
|
915
906
|
// index.ts
|
|
916
907
|
var render = async (node, renderConfig = {}) => {
|
|
917
908
|
const renderer = await createCliRenderer(renderConfig);
|
|
909
|
+
engine2.attach(renderer);
|
|
918
910
|
_render(() => createComponent2(RendererContext.Provider, {
|
|
919
911
|
get value() {
|
|
920
912
|
return renderer;
|
|
@@ -926,6 +918,7 @@ var render = async (node, renderConfig = {}) => {
|
|
|
926
918
|
};
|
|
927
919
|
var testRender = async (node, renderConfig = {}) => {
|
|
928
920
|
const testSetup = await createTestRenderer(renderConfig);
|
|
921
|
+
engine2.attach(testSetup.renderer);
|
|
929
922
|
_render(() => createComponent2(RendererContext.Provider, {
|
|
930
923
|
get value() {
|
|
931
924
|
return testSetup.renderer;
|
|
@@ -962,7 +955,6 @@ export {
|
|
|
962
955
|
createSlotNode,
|
|
963
956
|
createElement,
|
|
964
957
|
createDynamic,
|
|
965
|
-
createComponentTimeline,
|
|
966
958
|
createComponent2 as createComponent,
|
|
967
959
|
componentCatalogue,
|
|
968
960
|
baseComponents,
|
package/jsx-runtime.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { Renderable } from "@opentui/core"
|
|
|
2
2
|
import type {
|
|
3
3
|
AsciiFontProps,
|
|
4
4
|
BoxProps,
|
|
5
|
+
CodeProps,
|
|
5
6
|
ExtendedIntrinsicElements,
|
|
6
7
|
InputProps,
|
|
7
8
|
OpenTUIComponents,
|
|
@@ -28,6 +29,7 @@ declare namespace JSX {
|
|
|
28
29
|
ascii_font: AsciiFontProps
|
|
29
30
|
tab_select: TabSelectProps
|
|
30
31
|
scrollbox: ScrollBoxProps
|
|
32
|
+
code: CodeProps
|
|
31
33
|
|
|
32
34
|
b: SpanProps
|
|
33
35
|
strong: SpanProps
|
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.26",
|
|
8
8
|
"description": "SolidJS renderer for OpenTUI",
|
|
9
9
|
"license": "MIT",
|
|
10
10
|
"repository": {
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"@babel/core": "7.28.0",
|
|
29
29
|
"@babel/preset-typescript": "7.27.1",
|
|
30
|
-
"@opentui/core": "0.1.
|
|
30
|
+
"@opentui/core": "0.1.26",
|
|
31
31
|
"babel-plugin-module-resolver": "5.0.2",
|
|
32
32
|
"babel-preset-solid": "1.9.9",
|
|
33
33
|
"s-js": "^0.4.9"
|
package/src/elements/hooks.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Selection, Timeline, type
|
|
1
|
+
import { PasteEvent, Selection, Timeline, type CliRenderer, type KeyEvent, type TimelineOptions } from "@opentui/core";
|
|
2
2
|
export declare const RendererContext: import("solid-js").Context<CliRenderer | undefined>;
|
|
3
3
|
export declare const useRenderer: () => CliRenderer;
|
|
4
4
|
export declare const onResize: (callback: (width: number, height: number) => void) => void;
|
|
@@ -6,16 +6,11 @@ export declare const useTerminalDimensions: () => import("solid-js").Accessor<{
|
|
|
6
6
|
width: number;
|
|
7
7
|
height: number;
|
|
8
8
|
}>;
|
|
9
|
-
export declare const useKeyboard: (callback: (key:
|
|
10
|
-
export declare const usePaste: (callback: (
|
|
9
|
+
export declare const useKeyboard: (callback: (key: KeyEvent) => void) => void;
|
|
10
|
+
export declare const usePaste: (callback: (event: PasteEvent) => void) => void;
|
|
11
11
|
/**
|
|
12
12
|
* @deprecated renamed to useKeyboard
|
|
13
13
|
*/
|
|
14
|
-
export declare const useKeyHandler: (callback: (key:
|
|
14
|
+
export declare const useKeyHandler: (callback: (key: KeyEvent) => void) => void;
|
|
15
15
|
export declare const useSelectionHandler: (callback: (selection: Selection) => void) => void;
|
|
16
|
-
export declare const
|
|
17
|
-
export declare const useTimeline: <T extends Record<string, number>>(timeline: Timeline, initialValue: T, targetValue: T, options: AnimationOptions & {
|
|
18
|
-
onUpdate?: (values: JSAnimation & {
|
|
19
|
-
targets: T[];
|
|
20
|
-
}) => void;
|
|
21
|
-
}, startTime?: number | string) => import("solid-js").Accessor<T>;
|
|
16
|
+
export declare const useTimeline: (options?: TimelineOptions) => Timeline;
|
package/src/elements/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ASCIIFontRenderable, BoxRenderable, InputRenderable, ScrollBoxRenderable, SelectRenderable, TabSelectRenderable, TextNodeRenderable, TextRenderable, type RenderContext, type TextNodeOptions } from "@opentui/core";
|
|
1
|
+
import { ASCIIFontRenderable, BoxRenderable, CodeRenderable, InputRenderable, ScrollBoxRenderable, SelectRenderable, TabSelectRenderable, TextNodeRenderable, TextRenderable, type RenderContext, type TextNodeOptions } from "@opentui/core";
|
|
2
2
|
import type { RenderableConstructor } from "../types/elements";
|
|
3
3
|
export * from "./hooks";
|
|
4
4
|
export * from "./extras";
|
|
@@ -33,6 +33,7 @@ export declare const baseComponents: {
|
|
|
33
33
|
ascii_font: typeof ASCIIFontRenderable;
|
|
34
34
|
tab_select: typeof TabSelectRenderable;
|
|
35
35
|
scrollbox: typeof ScrollBoxRenderable;
|
|
36
|
+
code: typeof CodeRenderable;
|
|
36
37
|
span: typeof SpanRenderable;
|
|
37
38
|
strong: typeof BoldSpanRenderable;
|
|
38
39
|
b: typeof BoldSpanRenderable;
|
package/src/elements/slot.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ declare class SlotBaseRenderable extends BaseRenderable {
|
|
|
8
8
|
getRenderable(id: string): BaseRenderable | undefined;
|
|
9
9
|
getChildrenCount(): number;
|
|
10
10
|
requestRender(): void;
|
|
11
|
+
findDescendantById(id: string): BaseRenderable | undefined;
|
|
11
12
|
}
|
|
12
13
|
export declare class TextSlotRenderable extends TextNodeRenderable {
|
|
13
14
|
protected slotParent?: SlotRenderable;
|
package/src/types/elements.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ASCIIFontOptions, ASCIIFontRenderable, BaseRenderable, BoxOptions, BoxRenderable, InputRenderable, InputRenderableOptions, RenderableOptions, RenderContext, ScrollBoxOptions, ScrollBoxRenderable, SelectOption, SelectRenderable, SelectRenderableOptions, TabSelectOption, TabSelectRenderable, TabSelectRenderableOptions, TextNodeRenderable, TextOptions, TextRenderable } from "@opentui/core";
|
|
1
|
+
import type { ASCIIFontOptions, ASCIIFontRenderable, BaseRenderable, BoxOptions, BoxRenderable, CodeOptions, CodeRenderable, InputRenderable, InputRenderableOptions, RenderableOptions, RenderContext, ScrollBoxOptions, ScrollBoxRenderable, SelectOption, SelectRenderable, SelectRenderableOptions, TabSelectOption, TabSelectRenderable, TabSelectRenderableOptions, TextNodeRenderable, TextOptions, TextRenderable } from "@opentui/core";
|
|
2
2
|
import type { Ref } from "solid-js";
|
|
3
3
|
import type { JSX } from "../../jsx-runtime";
|
|
4
4
|
/** Properties that should not be included in the style prop */
|
|
@@ -14,7 +14,7 @@ type ExtractRenderableOptions<TConstructor> = TConstructor extends new (ctx: Ren
|
|
|
14
14
|
/** Extract the renderable type from a constructor */
|
|
15
15
|
type ExtractRenderable<TConstructor> = TConstructor extends new (ctx: RenderContext, options: any) => infer TRenderable ? TRenderable : never;
|
|
16
16
|
/** Determine which properties should be excluded from styling for different renderable types */
|
|
17
|
-
export type GetNonStyledProperties<TConstructor> = TConstructor extends RenderableConstructor<TextRenderable> ? NonStyledProps | "content" : TConstructor extends RenderableConstructor<BoxRenderable> ? NonStyledProps | "title" : TConstructor extends RenderableConstructor<ASCIIFontRenderable> ? NonStyledProps | "text" | "selectable" : TConstructor extends RenderableConstructor<InputRenderable> ? NonStyledProps | "placeholder" | "value" : NonStyledProps;
|
|
17
|
+
export type GetNonStyledProperties<TConstructor> = TConstructor extends RenderableConstructor<TextRenderable> ? NonStyledProps | "content" : TConstructor extends RenderableConstructor<BoxRenderable> ? NonStyledProps | "title" : TConstructor extends RenderableConstructor<ASCIIFontRenderable> ? NonStyledProps | "text" | "selectable" : TConstructor extends RenderableConstructor<InputRenderable> ? NonStyledProps | "placeholder" | "value" : TConstructor extends RenderableConstructor<CodeRenderable> ? NonStyledProps | "content" | "filetype" | "syntaxStyle" | "treeSitterClient" : NonStyledProps;
|
|
18
18
|
/** Base props for container components that accept children */
|
|
19
19
|
type ContainerProps<TOptions> = TOptions & {
|
|
20
20
|
children?: JSX.Element;
|
|
@@ -54,6 +54,7 @@ export type ScrollBoxProps = ComponentProps<ContainerProps<ScrollBoxOptions>, Sc
|
|
|
54
54
|
stickyScroll?: boolean;
|
|
55
55
|
stickyStart?: "bottom" | "top" | "left" | "right";
|
|
56
56
|
};
|
|
57
|
+
export type CodeProps = ComponentProps<CodeOptions, CodeRenderable>;
|
|
57
58
|
/** Convert renderable constructor to component props with proper style exclusions */
|
|
58
59
|
export type ExtendedComponentProps<TConstructor extends RenderableConstructor, TOptions = ExtractRenderableOptions<TConstructor>> = TOptions & {
|
|
59
60
|
children?: JSX.Element;
|