@opentui/solid 0.3.3 → 0.4.0

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.
Files changed (40) hide show
  1. package/components.js +106 -4
  2. package/components.js.map +10 -0
  3. package/index.bun.js +1609 -0
  4. package/index.bun.js.map +22 -0
  5. package/index.d.ts +1 -1
  6. package/index.js +146 -72
  7. package/index.js.map +22 -0
  8. package/jsx-dev-runtime.d.ts +1 -0
  9. package/jsx-dev-runtime.js +2 -0
  10. package/jsx-dev-runtime.js.map +1 -0
  11. package/jsx-runtime.d.ts +9 -6
  12. package/jsx-runtime.js +31 -0
  13. package/jsx-runtime.js.map +1 -0
  14. package/package.json +27 -9
  15. package/scripts/preload.js +3 -0
  16. package/scripts/preload.js.map +1 -0
  17. package/scripts/preload.node.js +9 -0
  18. package/scripts/runtime-plugin-support-configure.js +67 -0
  19. package/scripts/runtime-plugin-support-configure.js.map +1 -0
  20. package/scripts/runtime-plugin-support-configure.node.js +11 -0
  21. package/scripts/runtime-plugin-support.js +4 -0
  22. package/scripts/runtime-plugin-support.js.map +1 -0
  23. package/scripts/runtime-plugin-support.node.js +11 -0
  24. package/scripts/solid-plugin.d.ts +1 -1
  25. package/scripts/solid-plugin.js +76 -0
  26. package/scripts/solid-plugin.js.map +1 -0
  27. package/scripts/solid-plugin.node.js +21 -0
  28. package/scripts/solid-transform.d.ts +10 -0
  29. package/scripts/solid-transform.js +66 -0
  30. package/scripts/solid-transform.js.map +1 -0
  31. package/src/elements/extras.d.ts +2 -2
  32. package/src/testing/bun-test-node.d.ts +12 -0
  33. package/src/types/elements.d.ts +1 -1
  34. package/chunk-7fkmdv3h.js +0 -110
  35. package/dist/chunk-7fkmdv3h.d.ts +0 -81
  36. package/dist/index.d.ts +0 -118
  37. package/scripts/preload.ts +0 -3
  38. package/scripts/runtime-plugin-support-configure.ts +0 -109
  39. package/scripts/runtime-plugin-support.ts +0 -6
  40. package/scripts/solid-plugin.ts +0 -148
@@ -0,0 +1,10 @@
1
+ export type ResolveImportPath = (specifier: string) => string | null;
2
+ export interface TransformSolidSourceOptions {
3
+ filename: string;
4
+ moduleName?: string;
5
+ resolvePath?: ResolveImportPath;
6
+ }
7
+ export declare function stripQueryAndHash(path: string): string;
8
+ export declare function isNodeModulesPath(path: string): boolean;
9
+ export declare function resolveNodeSolidRuntimeImport(specifier: string): string | null;
10
+ export declare function transformSolidSource(code: string, options: TransformSolidSourceOptions): Promise<string>;
@@ -0,0 +1,66 @@
1
+ import { transformAsync } from "@babel/core";
2
+ // @ts-expect-error - Types not important.
3
+ import ts from "@babel/preset-typescript";
4
+ // @ts-expect-error - Types not important.
5
+ import moduleResolver from "babel-plugin-module-resolver";
6
+ // @ts-expect-error - Types not important.
7
+ import solid from "babel-preset-solid";
8
+ const nodeModulesPattern = /[/\\]node_modules[/\\]/;
9
+ const tsPattern = /\.[cm]?tsx?$/;
10
+ const jsxPattern = /\.[cm]?[jt]sx$/;
11
+ export function stripQueryAndHash(path) {
12
+ const searchIndex = path.indexOf("?");
13
+ const hashIndex = path.indexOf("#");
14
+ const end = [searchIndex, hashIndex].filter((index) => index >= 0).sort((a, b) => a - b)[0];
15
+ return end === undefined ? path : path.slice(0, end);
16
+ }
17
+ export function isNodeModulesPath(path) {
18
+ return nodeModulesPattern.test(path);
19
+ }
20
+ export function resolveNodeSolidRuntimeImport(specifier) {
21
+ switch (specifier) {
22
+ case "solid-js":
23
+ return "solid-js/dist/solid.js";
24
+ case "solid-js/store":
25
+ return "solid-js/store/dist/store.js";
26
+ default:
27
+ return null;
28
+ }
29
+ }
30
+ export async function transformSolidSource(code, options) {
31
+ const filename = stripQueryAndHash(options.filename);
32
+ const plugins = options.resolvePath
33
+ ? [
34
+ [
35
+ moduleResolver,
36
+ {
37
+ resolvePath(specifier) {
38
+ return options.resolvePath?.(specifier) ?? specifier;
39
+ },
40
+ },
41
+ ],
42
+ ]
43
+ : [];
44
+ const presets = [];
45
+ if (jsxPattern.test(filename)) {
46
+ presets.push([
47
+ solid,
48
+ {
49
+ moduleName: options.moduleName ?? "@opentui/solid",
50
+ generate: "universal",
51
+ },
52
+ ]);
53
+ }
54
+ if (tsPattern.test(filename)) {
55
+ presets.push([ts]);
56
+ }
57
+ const transformed = await transformAsync(code, {
58
+ filename,
59
+ configFile: false,
60
+ babelrc: false,
61
+ plugins,
62
+ presets,
63
+ });
64
+ return transformed?.code ?? code;
65
+ }
66
+ //# sourceMappingURL=solid-transform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solid-transform.js","sourceRoot":"","sources":["solid-transform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,0CAA0C;AAC1C,OAAO,EAAE,MAAM,0BAA0B,CAAA;AACzC,0CAA0C;AAC1C,OAAO,cAAc,MAAM,8BAA8B,CAAA;AACzD,0CAA0C;AAC1C,OAAO,KAAK,MAAM,oBAAoB,CAAA;AAUtC,MAAM,kBAAkB,GAAG,wBAAwB,CAAA;AACnD,MAAM,SAAS,GAAG,cAAc,CAAA;AAChC,MAAM,UAAU,GAAG,gBAAgB,CAAA;AAEnC,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACrC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACnC,MAAM,GAAG,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC3F,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;AACtD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACtC,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,SAAiB;IAC7D,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,UAAU;YACb,OAAO,wBAAwB,CAAA;QACjC,KAAK,gBAAgB;YACnB,OAAO,8BAA8B,CAAA;QACvC;YACE,OAAO,IAAI,CAAA;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAY,EAAE,OAAoC;IAC3F,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IACpD,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW;QACjC,CAAC,CAAC;YACE;gBACE,cAAc;gBACd;oBACE,WAAW,CAAC,SAAiB;wBAC3B,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,IAAI,SAAS,CAAA;oBACtD,CAAC;iBACF;aACF;SACF;QACH,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,OAAO,GAAG,EAAE,CAAA;IAElB,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC;YACX,KAAK;YACL;gBACE,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,gBAAgB;gBAClD,QAAQ,EAAE,WAAW;aACtB;SACF,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACpB,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE;QAC7C,QAAQ;QACR,UAAU,EAAE,KAAK;QACjB,OAAO,EAAE,KAAK;QACd,OAAO;QACP,OAAO;KACR,CAAC,CAAA;IAEF,OAAO,WAAW,EAAE,IAAI,IAAI,IAAI,CAAA;AAClC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { type DomNode } from "../reconciler.js";
2
- import type { JSX } from "../../jsx-runtime";
2
+ import type { JSX } from "../../jsx-runtime.js";
3
3
  import type { ValidComponent, ComponentProps } from "solid-js";
4
4
  /**
5
5
  * Renders components somewhere else in the DOM
@@ -12,7 +12,7 @@ export declare function Portal(props: {
12
12
  mount?: DomNode;
13
13
  ref?: (el: {}) => void;
14
14
  children: JSX.Element;
15
- }): DomNode;
15
+ }): JSX.Element;
16
16
  export type DynamicProps<T extends ValidComponent, P = ComponentProps<T>> = {
17
17
  [K in keyof P]: P[K];
18
18
  } & {
@@ -0,0 +1,12 @@
1
+ import { after, afterEach, before, beforeEach, describe, test } from "node:test";
2
+ export { after as afterAll, afterEach, before as beforeAll, beforeEach, describe, test };
3
+ export declare const it: typeof test;
4
+ export declare function expect(received: unknown): {
5
+ readonly not: /*elided*/ any;
6
+ toBe(expected: unknown): void;
7
+ toBeDefined(): void;
8
+ toBeFalsy(): void;
9
+ toBeTruthy(): void;
10
+ toContain(expected: unknown): void;
11
+ toEqual(expected: unknown): void;
12
+ };
@@ -1,6 +1,6 @@
1
1
  import type { ASCIIFontOptions, ASCIIFontRenderable, BaseRenderable, BoxOptions, BoxRenderable, CodeOptions, CodeRenderable, InputRenderable, InputRenderableOptions, KeyEvent, MarkdownOptions, MarkdownRenderable, RenderableOptions, RenderContext, ScrollBoxOptions, ScrollBoxRenderable, SelectOption, SelectRenderable, SelectRenderableOptions, TabSelectOption, TabSelectRenderable, TabSelectRenderableOptions, TextareaOptions, TextareaRenderable, TextNodeRenderable, TextOptions, TextRenderable } from "@opentui/core";
2
2
  import type { Ref } from "solid-js";
3
- import type { JSX } from "../../jsx-runtime";
3
+ import type { JSX } from "../../jsx-runtime.js";
4
4
  /** Properties that should not be included in the style prop */
5
5
  export type NonStyledProps = "id" | "buffered" | "live" | "enableLayout" | "selectable" | "renderAfter" | "renderBefore" | `on${string}`;
6
6
  /** Solid-specific props for all components */
package/chunk-7fkmdv3h.js DELETED
@@ -1,110 +0,0 @@
1
- // @bun
2
- // src/elements/catalogue.ts
3
- import {
4
- ASCIIFontRenderable,
5
- BoxRenderable,
6
- CodeRenderable,
7
- DiffRenderable,
8
- InputRenderable,
9
- LineNumberRenderable,
10
- MarkdownRenderable,
11
- ScrollBoxRenderable,
12
- SelectRenderable,
13
- TabSelectRenderable,
14
- TextareaRenderable,
15
- TextAttributes,
16
- TextNodeRenderable,
17
- TextRenderable
18
- } from "@opentui/core";
19
-
20
- class SpanRenderable extends TextNodeRenderable {
21
- _ctx;
22
- constructor(_ctx, options) {
23
- super(options);
24
- this._ctx = _ctx;
25
- }
26
- }
27
- var textNodeKeys = ["span", "b", "strong", "i", "em", "u", "a"];
28
-
29
- class TextModifierRenderable extends SpanRenderable {
30
- constructor(options, modifier) {
31
- super(null, options);
32
- if (modifier === "b" || modifier === "strong") {
33
- this.attributes = (this.attributes || 0) | TextAttributes.BOLD;
34
- } else if (modifier === "i" || modifier === "em") {
35
- this.attributes = (this.attributes || 0) | TextAttributes.ITALIC;
36
- } else if (modifier === "u") {
37
- this.attributes = (this.attributes || 0) | TextAttributes.UNDERLINE;
38
- }
39
- }
40
- }
41
-
42
- class BoldSpanRenderable extends TextModifierRenderable {
43
- constructor(options) {
44
- super(options, "b");
45
- }
46
- }
47
-
48
- class ItalicSpanRenderable extends TextModifierRenderable {
49
- constructor(options) {
50
- super(options, "i");
51
- }
52
- }
53
-
54
- class UnderlineSpanRenderable extends TextModifierRenderable {
55
- constructor(options) {
56
- super(options, "u");
57
- }
58
- }
59
-
60
- class LineBreakRenderable extends SpanRenderable {
61
- constructor(_ctx, options) {
62
- super(null, options);
63
- this.add();
64
- }
65
- add() {
66
- return super.add(`
67
- `);
68
- }
69
- }
70
-
71
- class LinkRenderable extends SpanRenderable {
72
- constructor(_ctx, options) {
73
- const linkOptions = {
74
- ...options,
75
- link: { url: options.href }
76
- };
77
- super(null, linkOptions);
78
- }
79
- }
80
- var baseComponents = {
81
- box: BoxRenderable,
82
- text: TextRenderable,
83
- input: InputRenderable,
84
- select: SelectRenderable,
85
- textarea: TextareaRenderable,
86
- ascii_font: ASCIIFontRenderable,
87
- tab_select: TabSelectRenderable,
88
- scrollbox: ScrollBoxRenderable,
89
- code: CodeRenderable,
90
- diff: DiffRenderable,
91
- line_number: LineNumberRenderable,
92
- markdown: MarkdownRenderable,
93
- span: SpanRenderable,
94
- strong: BoldSpanRenderable,
95
- b: BoldSpanRenderable,
96
- em: ItalicSpanRenderable,
97
- i: ItalicSpanRenderable,
98
- u: UnderlineSpanRenderable,
99
- br: LineBreakRenderable,
100
- a: LinkRenderable
101
- };
102
- var componentCatalogue = { ...baseComponents };
103
- function extend(objects) {
104
- Object.assign(componentCatalogue, objects);
105
- }
106
- function getComponentCatalogue() {
107
- return componentCatalogue;
108
- }
109
-
110
- export { textNodeKeys, BoldSpanRenderable, ItalicSpanRenderable, UnderlineSpanRenderable, LineBreakRenderable, LinkRenderable, baseComponents, componentCatalogue, extend, getComponentCatalogue };
@@ -1,81 +0,0 @@
1
- export var textNodeKeys: string[];
2
- export class BoldSpanRenderable extends TextModifierRenderable {
3
- constructor(options: any);
4
- }
5
- export class ItalicSpanRenderable extends TextModifierRenderable {
6
- constructor(options: any);
7
- }
8
- export class UnderlineSpanRenderable extends TextModifierRenderable {
9
- constructor(options: any);
10
- }
11
- export class LineBreakRenderable extends SpanRenderable {
12
- add(): number;
13
- }
14
- export class LinkRenderable extends SpanRenderable {
15
- }
16
- export namespace baseComponents {
17
- export { BoxRenderable as box };
18
- export { TextRenderable as text };
19
- export { InputRenderable as input };
20
- export { SelectRenderable as select };
21
- export { TextareaRenderable as textarea };
22
- export { ASCIIFontRenderable as ascii_font };
23
- export { TabSelectRenderable as tab_select };
24
- export { ScrollBoxRenderable as scrollbox };
25
- export { CodeRenderable as code };
26
- export { DiffRenderable as diff };
27
- export { LineNumberRenderable as line_number };
28
- export { MarkdownRenderable as markdown };
29
- export { SpanRenderable as span };
30
- export { BoldSpanRenderable as strong };
31
- export { BoldSpanRenderable as b };
32
- export { ItalicSpanRenderable as em };
33
- export { ItalicSpanRenderable as i };
34
- export { UnderlineSpanRenderable as u };
35
- export { LineBreakRenderable as br };
36
- export { LinkRenderable as a };
37
- }
38
- export namespace componentCatalogue { }
39
- export function extend(objects: any): void;
40
- export function getComponentCatalogue(): {
41
- box: typeof BoxRenderable;
42
- text: typeof TextRenderable;
43
- input: typeof InputRenderable;
44
- select: typeof SelectRenderable;
45
- textarea: typeof TextareaRenderable;
46
- ascii_font: typeof ASCIIFontRenderable;
47
- tab_select: typeof TabSelectRenderable;
48
- scrollbox: typeof ScrollBoxRenderable;
49
- code: typeof CodeRenderable;
50
- diff: typeof DiffRenderable;
51
- line_number: typeof LineNumberRenderable;
52
- markdown: typeof MarkdownRenderable;
53
- span: typeof SpanRenderable;
54
- strong: typeof BoldSpanRenderable;
55
- b: typeof BoldSpanRenderable;
56
- em: typeof ItalicSpanRenderable;
57
- i: typeof ItalicSpanRenderable;
58
- u: typeof UnderlineSpanRenderable;
59
- br: typeof LineBreakRenderable;
60
- a: typeof LinkRenderable;
61
- };
62
- declare class TextModifierRenderable extends SpanRenderable {
63
- }
64
- declare class SpanRenderable extends TextNodeRenderable {
65
- constructor(_ctx: any, options: any);
66
- _ctx: any;
67
- }
68
- import { BoxRenderable } from "@opentui/core";
69
- import { TextRenderable } from "@opentui/core";
70
- import { InputRenderable } from "@opentui/core";
71
- import { SelectRenderable } from "@opentui/core";
72
- import { TextareaRenderable } from "@opentui/core";
73
- import { ASCIIFontRenderable } from "@opentui/core";
74
- import { TabSelectRenderable } from "@opentui/core";
75
- import { ScrollBoxRenderable } from "@opentui/core";
76
- import { CodeRenderable } from "@opentui/core";
77
- import { DiffRenderable } from "@opentui/core";
78
- import { LineNumberRenderable } from "@opentui/core";
79
- import { MarkdownRenderable } from "@opentui/core";
80
- import { TextNodeRenderable } from "@opentui/core";
81
- export {};
package/dist/index.d.ts DELETED
@@ -1,118 +0,0 @@
1
- export function writeSolidToScrollback(renderer: any, node: any, options?: {}): void;
2
- export function useTimeline(options?: {}): Timeline;
3
- export function useTerminalDimensions(): import("solid-js").Accessor<{
4
- width: any;
5
- height: any;
6
- }>;
7
- export function useSelectionHandler(callback: any): void;
8
- export function useRenderer(): any;
9
- export function usePaste(callback: any): void;
10
- export function useKeyboard(callback: any, options: any): void;
11
- export function useKeyHandler(callback: any, options: any): void;
12
- export function use(fn: any, element: any, arg: any): any;
13
- import { textNodeKeys } from "./chunk-7fkmdv3h.js";
14
- export function testRender(node: any, renderConfig?: {}): Promise<import("@opentui/core/testing").TestRendererSetup>;
15
- export function spread(node: any, accessor: any, skipChildren: any): void;
16
- export function setProp(node: any, name: any, value: any, prev: any): any;
17
- export function render(node: any, rendererOrConfig?: {}): Promise<void>;
18
- export function onResize(callback: any): void;
19
- export function onFocus(callback: any): void;
20
- export function onBlur(callback: any): void;
21
- declare var mergeProps3: typeof mergeProps;
22
- declare function memo2(fn: any): import("solid-js").Accessor<any>;
23
- export var insertNode: any;
24
- export function insert(parent: any, accessor: any, marker: any, initial: any): any;
25
- import { getComponentCatalogue } from "./chunk-7fkmdv3h.js";
26
- import { extend } from "./chunk-7fkmdv3h.js";
27
- export var effect: typeof createRenderEffect;
28
- export var createTextNode: any;
29
- export function createSolidSlotRegistry(renderer: any, context: any, options?: {}): import("@opentui/core").SlotRegistry<any, object, any>;
30
- export function createSlotNode(): SlotRenderable;
31
- export function createSlot(registry: any, options?: {}): (props: any) => any;
32
- export function createScrollbackWriter(node: any, options?: {}): (ctx: any) => {
33
- root: BoxRenderable;
34
- width: number;
35
- height: number;
36
- rowColumns: any;
37
- startOnNewLine: any;
38
- trailingNewline: any;
39
- teardown: () => void;
40
- };
41
- export var createElement: any;
42
- export function createDynamic(component: any, props: any): import("solid-js").Accessor<any>;
43
- declare var createComponent2: typeof createComponent;
44
- import { componentCatalogue } from "./chunk-7fkmdv3h.js";
45
- import { baseComponents } from "./chunk-7fkmdv3h.js";
46
- export function _render(code: any, element: any): undefined;
47
- import { UnderlineSpanRenderable } from "./chunk-7fkmdv3h.js";
48
- export function TimeToFirstDraw(props: any): any;
49
- export class TextSlotRenderable extends TextNodeRenderable {
50
- constructor(id: any, parent: any);
51
- slotParent: any;
52
- destroyed: boolean;
53
- detachFromSlot(): void;
54
- disposeWithoutSlotCascade(): void;
55
- }
56
- export class SlotRenderable extends SlotBaseRenderable {
57
- destroyed: boolean;
58
- layoutNodesByParent: Map<any, any>;
59
- textNodesByParent: Map<any, any>;
60
- layoutNodeCount: number;
61
- textNodeCount: number;
62
- get layoutNode(): any;
63
- get textNode(): any;
64
- isTextSlotParent(parent: any): parent is TextRenderable | TextNodeRenderable;
65
- getCurrentSlotChild(nodesByParent: any): any;
66
- getTextNodeForParent(parent: any): any;
67
- getLayoutNodeForParent(parent: any): any;
68
- takeReusableTextNode(parent: any): any;
69
- takeReusableLayoutNode(parent: any): any;
70
- disposeDetachedTextNodes(): void;
71
- disposeDetachedIncompatibleLayoutNodes(parent: any): void;
72
- getAttachedSlotParent(excludedNode: any): any;
73
- hasOtherAttachedSlotChildren(excludedNode: any): boolean;
74
- getSlotChild(parent: any): any;
75
- getSlotChildForRemoval(parent: any): any;
76
- didRemoveSlotChild(parent: any, child: any): void;
77
- }
78
- export function Slot(props: any): import("solid-js").Accessor<any>;
79
- export var RendererContext: import("solid-js").Context<any>;
80
- export function Portal(props: any): SlotRenderable;
81
- import { LinkRenderable } from "./chunk-7fkmdv3h.js";
82
- import { LineBreakRenderable } from "./chunk-7fkmdv3h.js";
83
- export class LayoutSlotRenderable extends SlotBaseRenderable {
84
- constructor(id: any, parent: any, layoutParent: any);
85
- yogaNode: any;
86
- slotParent: any;
87
- destroyed: boolean;
88
- yogaNodeConstructor: any;
89
- yogaNodeFreed: boolean;
90
- getLayoutNode(): any;
91
- updateFromLayout(): void;
92
- updateLayout(): void;
93
- onRemove(): void;
94
- isCompatibleWith(layoutParent: any): boolean;
95
- detachFromSlot(): void;
96
- freeYogaNode(): void;
97
- disposeWithoutSlotCascade(): void;
98
- }
99
- import { ItalicSpanRenderable } from "./chunk-7fkmdv3h.js";
100
- export function Dynamic(props: any): import("solid-js").Accessor<any>;
101
- import { BoldSpanRenderable } from "./chunk-7fkmdv3h.js";
102
- import { Timeline } from "@opentui/core";
103
- import { mergeProps } from "solid-js";
104
- import { createRenderEffect } from "solid-js";
105
- import { BoxRenderable } from "@opentui/core";
106
- import { createComponent } from "solid-js";
107
- import { TextNodeRenderable } from "@opentui/core";
108
- declare class SlotBaseRenderable extends BaseRenderable {
109
- constructor(id: any);
110
- add(obj: any, index: any): void;
111
- remove(id: any): void;
112
- insertBefore(obj: any, anchor: any): void;
113
- getRenderable(id: any): void;
114
- findDescendantById(id: any): void;
115
- }
116
- import { TextRenderable } from "@opentui/core";
117
- import { BaseRenderable } from "@opentui/core";
118
- export { textNodeKeys, mergeProps3 as mergeProps, memo2 as memo, getComponentCatalogue, extend, createComponent2 as createComponent, componentCatalogue, baseComponents, UnderlineSpanRenderable, LinkRenderable, LineBreakRenderable, ItalicSpanRenderable, BoldSpanRenderable };
@@ -1,3 +0,0 @@
1
- import { ensureSolidTransformPlugin } from "./solid-plugin.js"
2
-
3
- ensureSolidTransformPlugin()
@@ -1,109 +0,0 @@
1
- import { plugin as registerBunPlugin } from "bun"
2
- import * as coreRuntime from "@opentui/core"
3
- import {
4
- createRuntimePlugin,
5
- isCoreRuntimeModuleSpecifier,
6
- runtimeModuleIdForSpecifier,
7
- type RuntimeModuleEntry,
8
- type RuntimePluginRewriteOptions,
9
- } from "@opentui/core/runtime-plugin"
10
- import * as solidJsRuntime from "solid-js"
11
- import * as solidJsStoreRuntime from "solid-js/store"
12
- import * as solidRuntime from "../index.js"
13
- import { ensureSolidTransformPlugin } from "./solid-plugin.js"
14
-
15
- const runtimePluginSupportInstalledKey = Symbol.for("opentui.solid.runtime-plugin-support")
16
-
17
- export interface SolidRuntimePluginSupportOptions {
18
- additional?: Record<string, RuntimeModuleEntry>
19
- core?: RuntimeModuleEntry
20
- rewrite?: RuntimePluginRewriteOptions
21
- }
22
-
23
- interface RuntimePluginSupportInstall {
24
- specifiers: ReadonlySet<string>
25
- core: RuntimeModuleEntry
26
- rewriteKey: string
27
- }
28
-
29
- type RuntimePluginSupportState = typeof globalThis & {
30
- [runtimePluginSupportInstalledKey]?: RuntimePluginSupportInstall
31
- }
32
-
33
- const defaultRuntimeModules: Record<string, RuntimeModuleEntry> = {
34
- "@opentui/solid": solidRuntime as Record<string, unknown>,
35
- "solid-js": solidJsRuntime as Record<string, unknown>,
36
- "solid-js/store": solidJsStoreRuntime as Record<string, unknown>,
37
- }
38
-
39
- function normalizeRewriteKey(rewrite: RuntimePluginRewriteOptions | undefined): string {
40
- return `${rewrite?.nodeModulesRuntimeSpecifiers ?? true}:${rewrite?.nodeModulesBareSpecifiers ?? false}`
41
- }
42
-
43
- function createRuntimeModules(options?: SolidRuntimePluginSupportOptions): Record<string, RuntimeModuleEntry> {
44
- return {
45
- ...defaultRuntimeModules,
46
- ...(options?.additional ?? {}),
47
- }
48
- }
49
-
50
- function assertCompatibleInstall(
51
- install: RuntimePluginSupportInstall,
52
- modules: Record<string, RuntimeModuleEntry>,
53
- options?: SolidRuntimePluginSupportOptions,
54
- ): void {
55
- for (const specifier of Object.keys(modules)) {
56
- if (!install.specifiers.has(specifier)) {
57
- throw new Error(
58
- `OpenTUI Solid runtime plugin support is already installed without ${specifier}. Call ensureRuntimePluginSupport({ additional }) from @opentui/solid/runtime-plugin-support/configure before importing @opentui/solid/runtime-plugin-support.`,
59
- )
60
- }
61
- }
62
-
63
- if (options?.core && options.core !== install.core) {
64
- throw new Error("OpenTUI Solid runtime plugin support is already installed with a different core runtime module.")
65
- }
66
-
67
- if (options?.rewrite && normalizeRewriteKey(options.rewrite) !== install.rewriteKey) {
68
- throw new Error("OpenTUI Solid runtime plugin support is already installed with different rewrite options.")
69
- }
70
- }
71
-
72
- export function ensureRuntimePluginSupport(options: SolidRuntimePluginSupportOptions = {}): boolean {
73
- const state = globalThis as RuntimePluginSupportState
74
- const modules = createRuntimeModules(options)
75
- const core = options.core ?? (coreRuntime as Record<string, unknown>)
76
- const rewriteKey = normalizeRewriteKey(options.rewrite)
77
-
78
- const install = state[runtimePluginSupportInstalledKey]
79
- if (install) {
80
- assertCompatibleInstall(install, modules, options)
81
- return false
82
- }
83
-
84
- ensureSolidTransformPlugin({
85
- moduleName: runtimeModuleIdForSpecifier("@opentui/solid"),
86
- resolvePath(specifier) {
87
- if (!isCoreRuntimeModuleSpecifier(specifier) && !modules[specifier]) {
88
- return null
89
- }
90
-
91
- return runtimeModuleIdForSpecifier(specifier)
92
- },
93
- })
94
-
95
- registerBunPlugin(
96
- createRuntimePlugin({
97
- core,
98
- additional: modules,
99
- rewrite: options.rewrite,
100
- }),
101
- )
102
-
103
- state[runtimePluginSupportInstalledKey] = {
104
- specifiers: new Set(Object.keys(modules)),
105
- core,
106
- rewriteKey,
107
- }
108
- return true
109
- }
@@ -1,6 +0,0 @@
1
- import { ensureRuntimePluginSupport } from "./runtime-plugin-support-configure.js"
2
-
3
- export { ensureRuntimePluginSupport }
4
- export type { SolidRuntimePluginSupportOptions } from "./runtime-plugin-support-configure.js"
5
-
6
- ensureRuntimePluginSupport()