@opentui/solid 0.1.24 → 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 +8 -3
- package/index.d.ts +1 -0
- package/index.js +33 -24
- package/jsx-runtime.d.ts +2 -0
- package/package.json +2 -2
- package/src/elements/hooks.d.ts +5 -9
- 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,10 +1,11 @@
|
|
|
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;
|
|
5
5
|
}>;
|
|
6
6
|
export function useSelectionHandler(callback: any): void;
|
|
7
7
|
export function useRenderer(): any;
|
|
8
|
+
export function usePaste(callback: any): void;
|
|
8
9
|
export function useKeyboard(callback: any): void;
|
|
9
10
|
export function useKeyHandler(callback: any): void;
|
|
10
11
|
export function use(fn: any, element: any, arg: any): any;
|
|
@@ -15,6 +16,7 @@ export function testRender(node: any, renderConfig?: {}): Promise<{
|
|
|
15
16
|
mockMouse: import("@opentui/core/testing").MockMouse;
|
|
16
17
|
renderOnce: () => Promise<void>;
|
|
17
18
|
captureCharFrame: () => string;
|
|
19
|
+
resize: (width: number, height: number) => void;
|
|
18
20
|
}>;
|
|
19
21
|
export function spread(node: any, accessor: any, skipChildren: any): void;
|
|
20
22
|
export function setProp(node: any, name: any, value: any, prev: any): any;
|
|
@@ -32,6 +34,7 @@ export function getComponentCatalogue(): {
|
|
|
32
34
|
ascii_font: typeof ASCIIFontRenderable;
|
|
33
35
|
tab_select: typeof TabSelectRenderable2;
|
|
34
36
|
scrollbox: typeof ScrollBoxRenderable;
|
|
37
|
+
code: typeof CodeRenderable;
|
|
35
38
|
span: typeof SpanRenderable;
|
|
36
39
|
strong: typeof BoldSpanRenderable;
|
|
37
40
|
b: typeof BoldSpanRenderable;
|
|
@@ -46,7 +49,6 @@ export var createTextNode: any;
|
|
|
46
49
|
export function createSlotNode(): SlotRenderable;
|
|
47
50
|
export var createElement: any;
|
|
48
51
|
export function createDynamic(component: any, props: any): import("solid-js").Accessor<any>;
|
|
49
|
-
export function createComponentTimeline(options?: {}): Timeline;
|
|
50
52
|
declare var createComponent2: typeof createComponent;
|
|
51
53
|
export namespace componentCatalogue {
|
|
52
54
|
export { BoxRenderable as box };
|
|
@@ -56,6 +58,7 @@ export namespace componentCatalogue {
|
|
|
56
58
|
export { ASCIIFontRenderable as ascii_font };
|
|
57
59
|
export { TabSelectRenderable2 as tab_select };
|
|
58
60
|
export { ScrollBoxRenderable as scrollbox };
|
|
61
|
+
export { CodeRenderable as code };
|
|
59
62
|
export { SpanRenderable as span };
|
|
60
63
|
export { BoldSpanRenderable as strong };
|
|
61
64
|
export { BoldSpanRenderable as b };
|
|
@@ -102,6 +105,7 @@ export function Dynamic(props: any): import("solid-js").Accessor<any>;
|
|
|
102
105
|
export class BoldSpanRenderable extends TextModifierRenderable {
|
|
103
106
|
constructor(options: any);
|
|
104
107
|
}
|
|
108
|
+
import { Timeline } from "@opentui/core";
|
|
105
109
|
import { mergeProps } from "solid-js";
|
|
106
110
|
import { BoxRenderable } from "@opentui/core";
|
|
107
111
|
import { TextRenderable as TextRenderable3 } from "@opentui/core";
|
|
@@ -110,12 +114,12 @@ import { SelectRenderable as SelectRenderable2 } from "@opentui/core";
|
|
|
110
114
|
import { ASCIIFontRenderable } from "@opentui/core";
|
|
111
115
|
import { TabSelectRenderable as TabSelectRenderable2 } from "@opentui/core";
|
|
112
116
|
import { ScrollBoxRenderable } from "@opentui/core";
|
|
117
|
+
import { CodeRenderable } from "@opentui/core";
|
|
113
118
|
declare class SpanRenderable extends TextNodeRenderable3 {
|
|
114
119
|
constructor(_ctx: any, options: any);
|
|
115
120
|
_ctx: any;
|
|
116
121
|
}
|
|
117
122
|
import { createRenderEffect } from "solid-js";
|
|
118
|
-
import { Timeline } from "@opentui/core";
|
|
119
123
|
import { createComponent } from "solid-js";
|
|
120
124
|
declare class TextModifierRenderable extends SpanRenderable {
|
|
121
125
|
}
|
|
@@ -126,6 +130,7 @@ declare class SlotBaseRenderable extends BaseRenderable {
|
|
|
126
130
|
remove(id: any): void;
|
|
127
131
|
insertBefore(obj: any, anchor: any): void;
|
|
128
132
|
getRenderable(id: any): void;
|
|
133
|
+
findDescendantById(id: any): void;
|
|
129
134
|
}
|
|
130
135
|
import { Yoga } from "@opentui/core";
|
|
131
136
|
import { BaseRenderable } from "@opentui/core";
|
package/index.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export declare const testRender: (node: () => JSX.Element, renderConfig?: TestRe
|
|
|
8
8
|
mockMouse: import("@opentui/core/testing").MockMouse;
|
|
9
9
|
renderOnce: () => Promise<void>;
|
|
10
10
|
captureCharFrame: () => string;
|
|
11
|
+
resize: (width: number, height: number) => void;
|
|
11
12
|
}>;
|
|
12
13
|
export * from "./src/reconciler";
|
|
13
14
|
export * from "./src/elements";
|
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,7 +19,7 @@ import {
|
|
|
18
19
|
|
|
19
20
|
// src/elements/hooks.ts
|
|
20
21
|
import {
|
|
21
|
-
|
|
22
|
+
engine,
|
|
22
23
|
Timeline
|
|
23
24
|
} from "@opentui/core";
|
|
24
25
|
import { createContext, createSignal, onCleanup, onMount, useContext } from "solid-js";
|
|
@@ -49,7 +50,8 @@ var useTerminalDimensions = () => {
|
|
|
49
50
|
return terminalDimensions;
|
|
50
51
|
};
|
|
51
52
|
var useKeyboard = (callback) => {
|
|
52
|
-
const
|
|
53
|
+
const renderer = useRenderer();
|
|
54
|
+
const keyHandler = renderer.keyInput;
|
|
53
55
|
onMount(() => {
|
|
54
56
|
keyHandler.on("keypress", callback);
|
|
55
57
|
});
|
|
@@ -57,6 +59,16 @@ var useKeyboard = (callback) => {
|
|
|
57
59
|
keyHandler.off("keypress", callback);
|
|
58
60
|
});
|
|
59
61
|
};
|
|
62
|
+
var usePaste = (callback) => {
|
|
63
|
+
const renderer = useRenderer();
|
|
64
|
+
const keyHandler = renderer.keyInput;
|
|
65
|
+
onMount(() => {
|
|
66
|
+
keyHandler.on("paste", callback);
|
|
67
|
+
});
|
|
68
|
+
onCleanup(() => {
|
|
69
|
+
keyHandler.off("paste", callback);
|
|
70
|
+
});
|
|
71
|
+
};
|
|
60
72
|
var useKeyHandler = useKeyboard;
|
|
61
73
|
var useSelectionHandler = (callback) => {
|
|
62
74
|
const renderer = useRenderer();
|
|
@@ -67,35 +79,20 @@ var useSelectionHandler = (callback) => {
|
|
|
67
79
|
renderer.off("selection", callback);
|
|
68
80
|
});
|
|
69
81
|
};
|
|
70
|
-
var
|
|
71
|
-
const renderer = useRenderer();
|
|
82
|
+
var useTimeline = (options = {}) => {
|
|
72
83
|
const timeline = new Timeline(options);
|
|
73
|
-
const frameCallback = async (dt) => timeline.update(dt);
|
|
74
84
|
onMount(() => {
|
|
75
85
|
if (options.autoplay !== false) {
|
|
76
86
|
timeline.play();
|
|
77
87
|
}
|
|
78
|
-
|
|
88
|
+
engine.register(timeline);
|
|
79
89
|
});
|
|
80
90
|
onCleanup(() => {
|
|
81
|
-
renderer.removeFrameCallback(frameCallback);
|
|
82
91
|
timeline.pause();
|
|
92
|
+
engine.unregister(timeline);
|
|
83
93
|
});
|
|
84
94
|
return timeline;
|
|
85
95
|
};
|
|
86
|
-
var useTimeline = (timeline, initialValue, targetValue, options, startTime = 0) => {
|
|
87
|
-
const [store, setStore] = createSignal(initialValue);
|
|
88
|
-
const { onUpdate, ...animationOptions } = options;
|
|
89
|
-
timeline.add(store(), {
|
|
90
|
-
...targetValue,
|
|
91
|
-
...animationOptions,
|
|
92
|
-
onUpdate: (values) => {
|
|
93
|
-
setStore({ ...values.targets[0] });
|
|
94
|
-
onUpdate?.(values);
|
|
95
|
-
}
|
|
96
|
-
}, startTime);
|
|
97
|
-
return store;
|
|
98
|
-
};
|
|
99
96
|
// src/elements/extras.ts
|
|
100
97
|
import { createEffect, createMemo as createMemo2, getOwner, onCleanup as onCleanup2, runWithOwner, splitProps, untrack as untrack2 } from "solid-js";
|
|
101
98
|
|
|
@@ -297,7 +294,7 @@ function createRenderer({
|
|
|
297
294
|
while (removed = getFirstChild(parent))
|
|
298
295
|
removeNode(parent, removed);
|
|
299
296
|
replacement && insertNode(parent, replacement);
|
|
300
|
-
return
|
|
297
|
+
return replacement;
|
|
301
298
|
}
|
|
302
299
|
const node = replacement || createSlotNode();
|
|
303
300
|
if (current.length) {
|
|
@@ -428,6 +425,7 @@ var getNodeChildren = (node) => {
|
|
|
428
425
|
function _insertNode(parent, node, anchor) {
|
|
429
426
|
log("Inserting node:", logId(node), "into parent:", logId(parent), "with anchor:", logId(anchor), node instanceof TextNode);
|
|
430
427
|
if (node instanceof SlotRenderable) {
|
|
428
|
+
node.parent = parent;
|
|
431
429
|
node = node.getSlotChild(parent);
|
|
432
430
|
}
|
|
433
431
|
if (anchor && anchor instanceof SlotRenderable) {
|
|
@@ -456,6 +454,7 @@ function _insertNode(parent, node, anchor) {
|
|
|
456
454
|
function _removeNode(parent, node) {
|
|
457
455
|
log("Removing node:", logId(node), "from parent:", logId(parent));
|
|
458
456
|
if (node instanceof SlotRenderable) {
|
|
457
|
+
node.parent = null;
|
|
459
458
|
node = node.getSlotChild(parent);
|
|
460
459
|
}
|
|
461
460
|
if (isTextNodeRenderable(parent)) {
|
|
@@ -553,6 +552,10 @@ var {
|
|
|
553
552
|
return;
|
|
554
553
|
}
|
|
555
554
|
switch (name) {
|
|
555
|
+
case "id":
|
|
556
|
+
log("Id mapped", node.id, "=", value);
|
|
557
|
+
node[name] = value;
|
|
558
|
+
break;
|
|
556
559
|
case "focused":
|
|
557
560
|
if (!(node instanceof Renderable))
|
|
558
561
|
return;
|
|
@@ -656,7 +659,7 @@ var {
|
|
|
656
659
|
log("No parent found for node:", logId(node));
|
|
657
660
|
return;
|
|
658
661
|
}
|
|
659
|
-
const siblings = getNodeChildren(
|
|
662
|
+
const siblings = getNodeChildren(parent);
|
|
660
663
|
const index = siblings.indexOf(node);
|
|
661
664
|
if (index === -1 || index === siblings.length - 1) {
|
|
662
665
|
log("No next sibling found for node:", logId(node));
|
|
@@ -740,6 +743,9 @@ class SlotBaseRenderable extends BaseRenderable2 {
|
|
|
740
743
|
return 0;
|
|
741
744
|
}
|
|
742
745
|
requestRender() {}
|
|
746
|
+
findDescendantById(id) {
|
|
747
|
+
return;
|
|
748
|
+
}
|
|
743
749
|
}
|
|
744
750
|
|
|
745
751
|
class TextSlotRenderable extends TextNodeRenderable2 {
|
|
@@ -880,6 +886,7 @@ var baseComponents = {
|
|
|
880
886
|
ascii_font: ASCIIFontRenderable,
|
|
881
887
|
tab_select: TabSelectRenderable2,
|
|
882
888
|
scrollbox: ScrollBoxRenderable,
|
|
889
|
+
code: CodeRenderable,
|
|
883
890
|
span: SpanRenderable,
|
|
884
891
|
strong: BoldSpanRenderable,
|
|
885
892
|
b: BoldSpanRenderable,
|
|
@@ -899,6 +906,7 @@ function getComponentCatalogue() {
|
|
|
899
906
|
// index.ts
|
|
900
907
|
var render = async (node, renderConfig = {}) => {
|
|
901
908
|
const renderer = await createCliRenderer(renderConfig);
|
|
909
|
+
engine2.attach(renderer);
|
|
902
910
|
_render(() => createComponent2(RendererContext.Provider, {
|
|
903
911
|
get value() {
|
|
904
912
|
return renderer;
|
|
@@ -910,6 +918,7 @@ var render = async (node, renderConfig = {}) => {
|
|
|
910
918
|
};
|
|
911
919
|
var testRender = async (node, renderConfig = {}) => {
|
|
912
920
|
const testSetup = await createTestRenderer(renderConfig);
|
|
921
|
+
engine2.attach(testSetup.renderer);
|
|
913
922
|
_render(() => createComponent2(RendererContext.Provider, {
|
|
914
923
|
get value() {
|
|
915
924
|
return testSetup.renderer;
|
|
@@ -925,6 +934,7 @@ export {
|
|
|
925
934
|
useTerminalDimensions,
|
|
926
935
|
useSelectionHandler,
|
|
927
936
|
useRenderer,
|
|
937
|
+
usePaste,
|
|
928
938
|
useKeyboard,
|
|
929
939
|
useKeyHandler,
|
|
930
940
|
use,
|
|
@@ -945,7 +955,6 @@ export {
|
|
|
945
955
|
createSlotNode,
|
|
946
956
|
createElement,
|
|
947
957
|
createDynamic,
|
|
948
|
-
createComponentTimeline,
|
|
949
958
|
createComponent2 as createComponent,
|
|
950
959
|
componentCatalogue,
|
|
951
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,15 +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:
|
|
9
|
+
export declare const useKeyboard: (callback: (key: KeyEvent) => void) => void;
|
|
10
|
+
export declare const usePaste: (callback: (event: PasteEvent) => void) => void;
|
|
10
11
|
/**
|
|
11
12
|
* @deprecated renamed to useKeyboard
|
|
12
13
|
*/
|
|
13
|
-
export declare const useKeyHandler: (callback: (key:
|
|
14
|
+
export declare const useKeyHandler: (callback: (key: KeyEvent) => void) => void;
|
|
14
15
|
export declare const useSelectionHandler: (callback: (selection: Selection) => void) => void;
|
|
15
|
-
export declare const
|
|
16
|
-
export declare const useTimeline: <T extends Record<string, number>>(timeline: Timeline, initialValue: T, targetValue: T, options: AnimationOptions & {
|
|
17
|
-
onUpdate?: (values: JSAnimation & {
|
|
18
|
-
targets: T[];
|
|
19
|
-
}) => void;
|
|
20
|
-
}, 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;
|