@opentui/solid 0.1.24 → 0.1.25

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
@@ -5,6 +5,7 @@ export function useTerminalDimensions(): import("solid-js").Accessor<{
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;
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
@@ -18,7 +18,6 @@ import {
18
18
 
19
19
  // src/elements/hooks.ts
20
20
  import {
21
- getKeyHandler,
22
21
  Timeline
23
22
  } from "@opentui/core";
24
23
  import { createContext, createSignal, onCleanup, onMount, useContext } from "solid-js";
@@ -49,7 +48,8 @@ var useTerminalDimensions = () => {
49
48
  return terminalDimensions;
50
49
  };
51
50
  var useKeyboard = (callback) => {
52
- const keyHandler = getKeyHandler();
51
+ const renderer = useRenderer();
52
+ const keyHandler = renderer.keyInput;
53
53
  onMount(() => {
54
54
  keyHandler.on("keypress", callback);
55
55
  });
@@ -57,6 +57,16 @@ var useKeyboard = (callback) => {
57
57
  keyHandler.off("keypress", callback);
58
58
  });
59
59
  };
60
+ var usePaste = (callback) => {
61
+ const renderer = useRenderer();
62
+ const keyHandler = renderer.keyInput;
63
+ onMount(() => {
64
+ keyHandler.on("paste", callback);
65
+ });
66
+ onCleanup(() => {
67
+ keyHandler.off("paste", callback);
68
+ });
69
+ };
60
70
  var useKeyHandler = useKeyboard;
61
71
  var useSelectionHandler = (callback) => {
62
72
  const renderer = useRenderer();
@@ -297,7 +307,7 @@ function createRenderer({
297
307
  while (removed = getFirstChild(parent))
298
308
  removeNode(parent, removed);
299
309
  replacement && insertNode(parent, replacement);
300
- return "";
310
+ return replacement;
301
311
  }
302
312
  const node = replacement || createSlotNode();
303
313
  if (current.length) {
@@ -428,6 +438,7 @@ var getNodeChildren = (node) => {
428
438
  function _insertNode(parent, node, anchor) {
429
439
  log("Inserting node:", logId(node), "into parent:", logId(parent), "with anchor:", logId(anchor), node instanceof TextNode);
430
440
  if (node instanceof SlotRenderable) {
441
+ node.parent = parent;
431
442
  node = node.getSlotChild(parent);
432
443
  }
433
444
  if (anchor && anchor instanceof SlotRenderable) {
@@ -456,6 +467,7 @@ function _insertNode(parent, node, anchor) {
456
467
  function _removeNode(parent, node) {
457
468
  log("Removing node:", logId(node), "from parent:", logId(parent));
458
469
  if (node instanceof SlotRenderable) {
470
+ node.parent = null;
459
471
  node = node.getSlotChild(parent);
460
472
  }
461
473
  if (isTextNodeRenderable(parent)) {
@@ -553,6 +565,10 @@ var {
553
565
  return;
554
566
  }
555
567
  switch (name) {
568
+ case "id":
569
+ log("Id mapped", node.id, "=", value);
570
+ node[name] = value;
571
+ break;
556
572
  case "focused":
557
573
  if (!(node instanceof Renderable))
558
574
  return;
@@ -656,7 +672,7 @@ var {
656
672
  log("No parent found for node:", logId(node));
657
673
  return;
658
674
  }
659
- const siblings = getNodeChildren(node);
675
+ const siblings = getNodeChildren(parent);
660
676
  const index = siblings.indexOf(node);
661
677
  if (index === -1 || index === siblings.length - 1) {
662
678
  log("No next sibling found for node:", logId(node));
@@ -925,6 +941,7 @@ export {
925
941
  useTerminalDimensions,
926
942
  useSelectionHandler,
927
943
  useRenderer,
944
+ usePaste,
928
945
  useKeyboard,
929
946
  useKeyHandler,
930
947
  use,
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.24",
7
+ "version": "0.1.25",
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.24",
30
+ "@opentui/core": "0.1.25",
31
31
  "babel-plugin-module-resolver": "5.0.2",
32
32
  "babel-preset-solid": "1.9.9",
33
33
  "s-js": "^0.4.9"
@@ -7,6 +7,7 @@ export declare const useTerminalDimensions: () => import("solid-js").Accessor<{
7
7
  height: number;
8
8
  }>;
9
9
  export declare const useKeyboard: (callback: (key: ParsedKey) => void) => void;
10
+ export declare const usePaste: (callback: (text: string) => void) => void;
10
11
  /**
11
12
  * @deprecated renamed to useKeyboard
12
13
  */