@opentui/react 0.4.4 → 0.5.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.
@@ -9,6 +9,7 @@ import {
9
9
  BoxRenderable,
10
10
  CodeRenderable,
11
11
  DiffRenderable,
12
+ ImageRenderable,
12
13
  InputRenderable,
13
14
  LineNumberRenderable,
14
15
  MarkdownRenderable,
@@ -97,6 +98,7 @@ var baseComponents = {
97
98
  "ascii-font": ASCIIFontRenderable,
98
99
  "tab-select": TabSelectRenderable,
99
100
  "line-number": LineNumberRenderable,
101
+ image: ImageRenderable,
100
102
  span: SpanRenderable,
101
103
  br: LineBreakRenderable,
102
104
  b: BoldSpanRenderable,
@@ -159,14 +161,14 @@ class ErrorBoundary extends React.Component {
159
161
 
160
162
  // src/reconciler/reconciler.ts
161
163
  import ReactReconciler from "react-reconciler";
162
- import { ConcurrentRoot } from "react-reconciler/constants";
164
+ import { ConcurrentRoot } from "react-reconciler/constants.js";
163
165
 
164
166
  // src/reconciler/host-config.ts
165
- import { TextNodeRenderable as TextNodeRenderable2 } from "@opentui/core";
167
+ import { ImageRenderable as ImageRenderable2, TextNodeRenderable as TextNodeRenderable2 } from "@opentui/core";
166
168
  // package.json
167
169
  var package_default = {
168
170
  name: "@opentui/react",
169
- version: "0.4.4",
171
+ version: "0.5.0",
170
172
  description: "React renderer for building terminal user interfaces using OpenTUI core",
171
173
  license: "MIT",
172
174
  repository: {
@@ -244,7 +246,7 @@ var package_default = {
244
246
 
245
247
  // src/reconciler/host-config.ts
246
248
  import { createContext as createContext2 } from "react";
247
- import { DefaultEventPriority, NoEventPriority } from "react-reconciler/constants";
249
+ import { DefaultEventPriority, NoEventPriority } from "react-reconciler/constants.js";
248
250
 
249
251
  // src/utils/id.ts
250
252
  var idCounter = new Map;
@@ -376,6 +378,11 @@ function updateProperties(instance, type, oldProps, newProps) {
376
378
 
377
379
  // src/reconciler/host-config.ts
378
380
  var currentUpdatePriority = NoEventPriority;
381
+ function initialInstanceProps(type, props) {
382
+ if (type !== "image" || props.source === undefined)
383
+ return props;
384
+ return { ...props, source: undefined };
385
+ }
379
386
  var hostConfig = {
380
387
  supportsMutation: true,
381
388
  supportsPersistence: false,
@@ -393,7 +400,7 @@ var hostConfig = {
393
400
  }
394
401
  return new components[type](rootContainerInstance.ctx, {
395
402
  id,
396
- ...props
403
+ ...initialInstanceProps(type, props)
397
404
  });
398
405
  },
399
406
  appendChild(parent, child) {
@@ -444,10 +451,13 @@ var hostConfig = {
444
451
  return true;
445
452
  },
446
453
  finalizeInitialChildren(instance, type, props, rootContainerInstance, hostContext) {
447
- setInitialProperties(instance, type, props);
448
- return false;
454
+ setInitialProperties(instance, type, initialInstanceProps(type, props));
455
+ return type === "image" && props.source !== undefined;
456
+ },
457
+ commitMount(instance, type, props, internalInstanceHandle) {
458
+ if (instance instanceof ImageRenderable2)
459
+ instance.source = props.source;
449
460
  },
450
- commitMount(instance, type, props, internalInstanceHandle) {},
451
461
  commitUpdate(instance, type, oldProps, newProps, internalInstanceHandle) {
452
462
  updateProperties(instance, type, oldProps, newProps);
453
463
  },
package/index.js CHANGED
@@ -11,7 +11,7 @@ import {
11
11
  getComponentCatalogue,
12
12
  jsxDEV,
13
13
  useAppContext
14
- } from "./chunk-9tt3518z.js";
14
+ } from "./chunk-tyqqzmyr.js";
15
15
  import"./chunk-2mx7fq49.js";
16
16
  // src/hooks/use-blur.ts
17
17
  import { useEffect } from "react";
@@ -5,6 +5,7 @@ import type {
5
5
  CodeProps,
6
6
  DiffProps,
7
7
  ExtendedIntrinsicElements,
8
+ ImageProps,
8
9
  InputProps,
9
10
  LineBreakProps,
10
11
  LineNumberProps,
@@ -50,6 +51,7 @@ export namespace JSX {
50
51
  "ascii-font": AsciiFontProps
51
52
  "tab-select": TabSelectProps
52
53
  "line-number": LineNumberProps
54
+ image: ImageProps
53
55
  // Text modifiers
54
56
  b: SpanProps
55
57
  i: SpanProps
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "main": "index.js",
5
5
  "types": "src/index.d.ts",
6
6
  "type": "module",
7
- "version": "0.4.4",
7
+ "version": "0.5.0",
8
8
  "description": "React renderer for building terminal user interfaces using OpenTUI core",
9
9
  "license": "MIT",
10
10
  "repository": {
@@ -52,7 +52,7 @@
52
52
  }
53
53
  },
54
54
  "dependencies": {
55
- "@opentui/core": "0.4.4",
55
+ "@opentui/core": "0.5.0",
56
56
  "react-reconciler": "^0.33.0"
57
57
  },
58
58
  "devDependencies": {
@@ -1,4 +1,4 @@
1
- import { ASCIIFontRenderable, BoxRenderable, CodeRenderable, DiffRenderable, InputRenderable, LineNumberRenderable, MarkdownRenderable, ScrollBoxRenderable, SelectRenderable, TabSelectRenderable, TextareaRenderable, TextRenderable } from "@opentui/core";
1
+ import { ASCIIFontRenderable, BoxRenderable, CodeRenderable, DiffRenderable, ImageRenderable, InputRenderable, LineNumberRenderable, MarkdownRenderable, ScrollBoxRenderable, SelectRenderable, TabSelectRenderable, TextareaRenderable, TextRenderable } from "@opentui/core";
2
2
  import type { RenderableConstructor } from "../types/components.js";
3
3
  import { BoldSpanRenderable, ItalicSpanRenderable, LineBreakRenderable, LinkRenderable, SpanRenderable, UnderlineSpanRenderable } from "./text.js";
4
4
  export declare const baseComponents: {
@@ -14,6 +14,7 @@ export declare const baseComponents: {
14
14
  "ascii-font": typeof ASCIIFontRenderable;
15
15
  "tab-select": typeof TabSelectRenderable;
16
16
  "line-number": typeof LineNumberRenderable;
17
+ image: typeof ImageRenderable;
17
18
  span: typeof SpanRenderable;
18
19
  br: typeof LineBreakRenderable;
19
20
  b: typeof BoldSpanRenderable;
@@ -1,4 +1,4 @@
1
- import type { ASCIIFontOptions, ASCIIFontRenderable, BaseRenderable, BoxOptions, BoxRenderable, CodeOptions, CodeRenderable, DiffRenderable, DiffRenderableOptions, InputRenderable, InputRenderableOptions, LineNumberOptions, LineNumberRenderable, MarkdownOptions, MarkdownRenderable, RenderableOptions, RenderContext, ScrollBoxOptions, ScrollBoxRenderable, SelectOption, SelectRenderable, SelectRenderableOptions, TabSelectOption, TabSelectRenderable, TabSelectRenderableOptions, TextareaOptions, TextareaRenderable, TextNodeOptions, TextNodeRenderable, TextOptions, TextRenderable, CursorChangeEvent, ContentChangeEvent, KeyEvent } from "@opentui/core";
1
+ import type { ASCIIFontOptions, ASCIIFontRenderable, BaseRenderable, BoxOptions, BoxRenderable, CodeOptions, CodeRenderable, DiffRenderable, DiffRenderableOptions, ImageRenderable, ImageRenderableOptions, InputRenderable, InputRenderableOptions, LineNumberOptions, LineNumberRenderable, MarkdownOptions, MarkdownRenderable, RenderableOptions, RenderContext, ScrollBoxOptions, ScrollBoxRenderable, SelectOption, SelectRenderable, SelectRenderableOptions, TabSelectOption, TabSelectRenderable, TabSelectRenderableOptions, TextareaOptions, TextareaRenderable, TextNodeOptions, TextNodeRenderable, TextOptions, TextRenderable, CursorChangeEvent, ContentChangeEvent, KeyEvent } from "@opentui/core";
2
2
  import type React from "react";
3
3
  /** Properties that should not be included in the style prop */
4
4
  export type NonStyledProps = "id" | "buffered" | "live" | "enableLayout" | "selectable" | "renderAfter" | "renderBefore" | `on${string}`;
@@ -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" | "bottomTitle" : TConstructor extends RenderableConstructor<ASCIIFontRenderable> ? NonStyledProps | "text" | "selectable" : TConstructor extends RenderableConstructor<InputRenderable> ? NonStyledProps | "placeholder" | "value" : TConstructor extends RenderableConstructor<TextareaRenderable> ? NonStyledProps | "placeholder" | "initialValue" : TConstructor extends RenderableConstructor<CodeRenderable> ? NonStyledProps | "content" | "filetype" | "syntaxStyle" | "treeSitterClient" | "conceal" | "drawUnstyledText" : TConstructor extends RenderableConstructor<MarkdownRenderable> ? NonStyledProps | "content" | "syntaxStyle" | "treeSitterClient" | "conceal" | "renderNode" : NonStyledProps;
17
+ export type GetNonStyledProperties<TConstructor> = TConstructor extends RenderableConstructor<TextRenderable> ? NonStyledProps | "content" : TConstructor extends RenderableConstructor<BoxRenderable> ? NonStyledProps | "title" | "bottomTitle" : TConstructor extends RenderableConstructor<ASCIIFontRenderable> ? NonStyledProps | "text" | "selectable" : TConstructor extends RenderableConstructor<InputRenderable> ? NonStyledProps | "placeholder" | "value" : TConstructor extends RenderableConstructor<TextareaRenderable> ? NonStyledProps | "placeholder" | "initialValue" : TConstructor extends RenderableConstructor<CodeRenderable> ? NonStyledProps | "content" | "filetype" | "syntaxStyle" | "treeSitterClient" | "conceal" | "drawUnstyledText" : TConstructor extends RenderableConstructor<MarkdownRenderable> ? NonStyledProps | "content" | "syntaxStyle" | "treeSitterClient" | "conceal" | "renderNode" : TConstructor extends RenderableConstructor<ImageRenderable> ? NonStyledProps | "source" : NonStyledProps;
18
18
  /** Base props for container components that accept children */
19
19
  type ContainerProps<TOptions> = TOptions & {
20
20
  children?: React.ReactNode;
@@ -52,6 +52,7 @@ export type TextareaProps = ComponentProps<TextareaOptions, TextareaRenderable>
52
52
  onKeyDown?: (event: KeyEvent) => void;
53
53
  };
54
54
  export type CodeProps = ComponentProps<CodeOptions, CodeRenderable>;
55
+ export type ImageProps = ComponentProps<ImageRenderableOptions, ImageRenderable>;
55
56
  export type MarkdownProps = ComponentProps<MarkdownOptions, MarkdownRenderable>;
56
57
  export type DiffProps = ComponentProps<DiffRenderableOptions, DiffRenderable>;
57
58
  export type SelectProps = ComponentProps<SelectRenderableOptions, SelectRenderable> & {
package/test-utils.js CHANGED
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  createRoot
4
- } from "./chunk-9tt3518z.js";
4
+ } from "./chunk-tyqqzmyr.js";
5
5
  import"./chunk-2mx7fq49.js";
6
6
 
7
7
  // src/test-utils.ts