@opentui/solid 0.1.68 → 0.1.70

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 CHANGED
@@ -20,7 +20,7 @@ export function testRender(node: any, renderConfig?: {}): Promise<{
20
20
  }>;
21
21
  export function spread(node: any, accessor: any, skipChildren: any): void;
22
22
  export function setProp(node: any, name: any, value: any, prev: any): any;
23
- export function render(node: any, renderConfig?: {}): Promise<void>;
23
+ export function render(node: any, rendererOrConfig?: {}): Promise<void>;
24
24
  export function onResize(callback: any): void;
25
25
  declare var mergeProps3: typeof mergeProps;
26
26
  declare function memo2(fn: any): import("solid-js").Accessor<any>;
package/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { type CliRendererConfig } from "@opentui/core";
1
+ import { CliRenderer, type CliRendererConfig } from "@opentui/core";
2
2
  import { type TestRendererOptions } from "@opentui/core/testing";
3
3
  import type { JSX } from "./jsx-runtime";
4
- export declare const render: (node: () => JSX.Element, renderConfig?: CliRendererConfig) => Promise<void>;
4
+ export declare const render: (node: () => JSX.Element, rendererOrConfig?: CliRenderer | CliRendererConfig) => Promise<void>;
5
5
  export declare const testRender: (node: () => JSX.Element, renderConfig?: TestRendererOptions) => Promise<{
6
6
  renderer: import("@opentui/core/testing").TestRenderer;
7
7
  mockInput: import("@opentui/core/testing").MockInput;
package/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // @bun
2
2
  // index.ts
3
- import { createCliRenderer, engine as engine2 } from "@opentui/core";
3
+ import { CliRenderer, createCliRenderer, engine as engine2 } from "@opentui/core";
4
4
  import { createTestRenderer } from "@opentui/core/testing";
5
5
 
6
6
  // src/elements/index.ts
@@ -925,20 +925,29 @@ function getComponentCatalogue() {
925
925
  }
926
926
 
927
927
  // index.ts
928
- var render = async (node, renderConfig = {}) => {
928
+ var render = async (node, rendererOrConfig = {}) => {
929
929
  let isDisposed = false;
930
- const renderer = await createCliRenderer({
931
- ...renderConfig,
930
+ let dispose;
931
+ const renderer = rendererOrConfig instanceof CliRenderer ? rendererOrConfig : await createCliRenderer({
932
+ ...rendererOrConfig,
932
933
  onDestroy: () => {
933
934
  if (!isDisposed) {
934
935
  isDisposed = true;
935
936
  dispose();
936
937
  }
937
- renderConfig.onDestroy?.();
938
+ rendererOrConfig.onDestroy?.();
938
939
  }
939
940
  });
941
+ if (rendererOrConfig instanceof CliRenderer) {
942
+ renderer.on("destroy", () => {
943
+ if (!isDisposed) {
944
+ isDisposed = true;
945
+ dispose();
946
+ }
947
+ });
948
+ }
940
949
  engine2.attach(renderer);
941
- const dispose = _render(() => createComponent2(RendererContext.Provider, {
950
+ dispose = _render(() => createComponent2(RendererContext.Provider, {
942
951
  get value() {
943
952
  return renderer;
944
953
  },
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.68",
7
+ "version": "0.1.70",
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.68",
34
+ "@opentui/core": "0.1.70",
35
35
  "babel-plugin-module-resolver": "5.0.2",
36
36
  "babel-preset-solid": "1.9.9",
37
37
  "s-js": "^0.4.9"