@gridland/web 0.2.20 → 0.2.22

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
@@ -1,8 +1,6 @@
1
- import { B as BrowserRenderer, W as WidthMethod, R as RGBA, a as BrowserRenderContext, b as BrowserBuffer } from './next-BWTklBmN.js';
2
- export { c as BorderDrawOptions, C as CanvasPainter, d as CanvasPainterOptions, S as SelectionManager, T as TUI, e as TUIProps } from './next-BWTklBmN.js';
3
- import * as react from 'react';
1
+ import { B as BrowserRenderer, W as WidthMethod, R as RGBA, a as BrowserRenderContext } from './next-BCubNgui.js';
2
+ export { b as BorderDrawOptions, c as BrowserBuffer, C as CanvasPainter, d as CanvasPainterOptions, S as SelectionManager, T as TUI, e as TUIProps } from './next-BCubNgui.js';
4
3
  import { ReactNode } from 'react';
5
- export { useKeyboard, useTerminalDimensions } from '@opentui/react';
6
4
  import 'react/jsx-runtime';
7
5
  import 'events';
8
6
 
@@ -209,50 +207,6 @@ declare function usePaste(callback: (text: string) => void): void;
209
207
  interface BrowserContextValue {
210
208
  renderContext: BrowserRenderContext;
211
209
  }
212
- declare const BrowserContext: react.Context<BrowserContextValue | null>;
213
210
  declare function useBrowserContext(): BrowserContextValue;
214
211
 
215
- interface ReadableCharBuffer {
216
- width: number;
217
- height: number;
218
- char: Uint32Array;
219
- }
220
- declare function bufferToText(buffer: ReadableCharBuffer): string;
221
-
222
- declare function setHeadlessRootRenderableClass(cls: any): void;
223
- interface HeadlessRendererOptions {
224
- cols: number;
225
- rows: number;
226
- }
227
- declare class HeadlessRenderer {
228
- buffer: BrowserBuffer;
229
- renderContext: BrowserRenderContext;
230
- root: any;
231
- constructor(options: HeadlessRendererOptions);
232
- renderOnce(): void;
233
- toText(): string;
234
- resize(cols: number, rows: number): void;
235
- }
236
-
237
- interface HeadlessRoot {
238
- render(node: ReactNode): void;
239
- renderToText(node: ReactNode): string;
240
- unmount(): void;
241
- }
242
- declare function createHeadlessRoot(renderer: HeadlessRenderer): HeadlessRoot;
243
-
244
- /**
245
- * SSR-safe utilities for @gridland/web.
246
- * These can be imported in any environment (Node.js, browser, edge).
247
- */
248
- /** Check if running in a browser environment */
249
- declare function isBrowser(): boolean;
250
- /** Check if canvas is supported */
251
- declare function isCanvasSupported(): boolean;
252
- /** Calculate grid dimensions from pixel dimensions and font size */
253
- declare function calculateGridSize(widthPx: number, heightPx: number, cellWidth: number, cellHeight: number): {
254
- cols: number;
255
- rows: number;
256
- };
257
-
258
- export { BrowserBuffer, BrowserContext, type BrowserContextValue, BrowserRenderContext, BrowserRenderer, type BrowserRoot, BrowserSyntaxStyle, BrowserTextBuffer, BrowserTextBufferView, type DroppedFile, HeadlessRenderer, type HeadlessRendererOptions, type HeadlessRoot, type MountOptions, type MountResult, type StyledTextInput, type TextChunk, type VisibleLine, type VisibleLineChunk, WidthMethod, bufferToText, calculateGridSize, createBrowserRoot, createHeadlessRoot, isBrowser, isCanvasSupported, mountGridland, setHeadlessRootRenderableClass, useBrowserContext, useFileDrop, usePaste };
212
+ export { BrowserRenderContext, BrowserRenderer, type BrowserRoot, BrowserSyntaxStyle, BrowserTextBuffer, BrowserTextBufferView, type DroppedFile, type MountOptions, type MountResult, type StyledTextInput, type TextChunk, type VisibleLine, type VisibleLineChunk, WidthMethod, createBrowserRoot, mountGridland, useBrowserContext, useFileDrop, usePaste };
package/dist/index.js CHANGED
@@ -7970,14 +7970,14 @@ var require_react_reconciler_production = __commonJS({
7970
7970
  }
7971
7971
  var exports2 = {};
7972
7972
  "use strict";
7973
- var React5 = __require("react"), Scheduler = require_scheduler(), assign = Object.assign, REACT_LEGACY_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for("react.element"), REACT_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for("react.transitional.element"), REACT_PORTAL_TYPE = /* @__PURE__ */ Symbol.for("react.portal"), REACT_FRAGMENT_TYPE = /* @__PURE__ */ Symbol.for("react.fragment"), REACT_STRICT_MODE_TYPE = /* @__PURE__ */ Symbol.for("react.strict_mode"), REACT_PROFILER_TYPE = /* @__PURE__ */ Symbol.for("react.profiler"), REACT_CONSUMER_TYPE = /* @__PURE__ */ Symbol.for("react.consumer"), REACT_CONTEXT_TYPE = /* @__PURE__ */ Symbol.for("react.context"), REACT_FORWARD_REF_TYPE = /* @__PURE__ */ Symbol.for("react.forward_ref"), REACT_SUSPENSE_TYPE = /* @__PURE__ */ Symbol.for("react.suspense"), REACT_SUSPENSE_LIST_TYPE = /* @__PURE__ */ Symbol.for("react.suspense_list"), REACT_MEMO_TYPE = /* @__PURE__ */ Symbol.for("react.memo"), REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for("react.lazy");
7973
+ var React4 = __require("react"), Scheduler = require_scheduler(), assign = Object.assign, REACT_LEGACY_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for("react.element"), REACT_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for("react.transitional.element"), REACT_PORTAL_TYPE = /* @__PURE__ */ Symbol.for("react.portal"), REACT_FRAGMENT_TYPE = /* @__PURE__ */ Symbol.for("react.fragment"), REACT_STRICT_MODE_TYPE = /* @__PURE__ */ Symbol.for("react.strict_mode"), REACT_PROFILER_TYPE = /* @__PURE__ */ Symbol.for("react.profiler"), REACT_CONSUMER_TYPE = /* @__PURE__ */ Symbol.for("react.consumer"), REACT_CONTEXT_TYPE = /* @__PURE__ */ Symbol.for("react.context"), REACT_FORWARD_REF_TYPE = /* @__PURE__ */ Symbol.for("react.forward_ref"), REACT_SUSPENSE_TYPE = /* @__PURE__ */ Symbol.for("react.suspense"), REACT_SUSPENSE_LIST_TYPE = /* @__PURE__ */ Symbol.for("react.suspense_list"), REACT_MEMO_TYPE = /* @__PURE__ */ Symbol.for("react.memo"), REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for("react.lazy");
7974
7974
  /* @__PURE__ */ Symbol.for("react.scope");
7975
7975
  var REACT_ACTIVITY_TYPE = /* @__PURE__ */ Symbol.for("react.activity");
7976
7976
  /* @__PURE__ */ Symbol.for("react.legacy_hidden");
7977
7977
  /* @__PURE__ */ Symbol.for("react.tracing_marker");
7978
7978
  var REACT_MEMO_CACHE_SENTINEL = /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel");
7979
7979
  /* @__PURE__ */ Symbol.for("react.view_transition");
7980
- var MAYBE_ITERATOR_SYMBOL = Symbol.iterator, REACT_CLIENT_REFERENCE = /* @__PURE__ */ Symbol.for("react.client.reference"), isArrayImpl = Array.isArray, ReactSharedInternals = React5.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, rendererVersion = $$$config.rendererVersion, rendererPackageName = $$$config.rendererPackageName, extraDevToolsConfig = $$$config.extraDevToolsConfig, getPublicInstance = $$$config.getPublicInstance, getRootHostContext = $$$config.getRootHostContext, getChildHostContext = $$$config.getChildHostContext, prepareForCommit = $$$config.prepareForCommit, resetAfterCommit = $$$config.resetAfterCommit, createInstance = $$$config.createInstance;
7980
+ var MAYBE_ITERATOR_SYMBOL = Symbol.iterator, REACT_CLIENT_REFERENCE = /* @__PURE__ */ Symbol.for("react.client.reference"), isArrayImpl = Array.isArray, ReactSharedInternals = React4.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, rendererVersion = $$$config.rendererVersion, rendererPackageName = $$$config.rendererPackageName, extraDevToolsConfig = $$$config.extraDevToolsConfig, getPublicInstance = $$$config.getPublicInstance, getRootHostContext = $$$config.getRootHostContext, getChildHostContext = $$$config.getChildHostContext, prepareForCommit = $$$config.prepareForCommit, resetAfterCommit = $$$config.resetAfterCommit, createInstance = $$$config.createInstance;
7981
7981
  $$$config.cloneMutableInstance;
7982
7982
  var appendInitialChild = $$$config.appendInitialChild, finalizeInitialChildren = $$$config.finalizeInitialChildren, shouldSetTextContent = $$$config.shouldSetTextContent, createTextInstance = $$$config.createTextInstance;
7983
7983
  $$$config.cloneMutableTextInstance;
@@ -20570,14 +20570,14 @@ var require_react_reconciler_development = __commonJS({
20570
20570
  }
20571
20571
  var exports2 = {};
20572
20572
  "use strict";
20573
- var React5 = __require("react"), Scheduler = require_scheduler(), assign = Object.assign, REACT_LEGACY_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for("react.element"), REACT_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for("react.transitional.element"), REACT_PORTAL_TYPE = /* @__PURE__ */ Symbol.for("react.portal"), REACT_FRAGMENT_TYPE = /* @__PURE__ */ Symbol.for("react.fragment"), REACT_STRICT_MODE_TYPE = /* @__PURE__ */ Symbol.for("react.strict_mode"), REACT_PROFILER_TYPE = /* @__PURE__ */ Symbol.for("react.profiler"), REACT_CONSUMER_TYPE = /* @__PURE__ */ Symbol.for("react.consumer"), REACT_CONTEXT_TYPE = /* @__PURE__ */ Symbol.for("react.context"), REACT_FORWARD_REF_TYPE = /* @__PURE__ */ Symbol.for("react.forward_ref"), REACT_SUSPENSE_TYPE = /* @__PURE__ */ Symbol.for("react.suspense"), REACT_SUSPENSE_LIST_TYPE = /* @__PURE__ */ Symbol.for("react.suspense_list"), REACT_MEMO_TYPE = /* @__PURE__ */ Symbol.for("react.memo"), REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for("react.lazy");
20573
+ var React4 = __require("react"), Scheduler = require_scheduler(), assign = Object.assign, REACT_LEGACY_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for("react.element"), REACT_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for("react.transitional.element"), REACT_PORTAL_TYPE = /* @__PURE__ */ Symbol.for("react.portal"), REACT_FRAGMENT_TYPE = /* @__PURE__ */ Symbol.for("react.fragment"), REACT_STRICT_MODE_TYPE = /* @__PURE__ */ Symbol.for("react.strict_mode"), REACT_PROFILER_TYPE = /* @__PURE__ */ Symbol.for("react.profiler"), REACT_CONSUMER_TYPE = /* @__PURE__ */ Symbol.for("react.consumer"), REACT_CONTEXT_TYPE = /* @__PURE__ */ Symbol.for("react.context"), REACT_FORWARD_REF_TYPE = /* @__PURE__ */ Symbol.for("react.forward_ref"), REACT_SUSPENSE_TYPE = /* @__PURE__ */ Symbol.for("react.suspense"), REACT_SUSPENSE_LIST_TYPE = /* @__PURE__ */ Symbol.for("react.suspense_list"), REACT_MEMO_TYPE = /* @__PURE__ */ Symbol.for("react.memo"), REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for("react.lazy");
20574
20574
  /* @__PURE__ */ Symbol.for("react.scope");
20575
20575
  var REACT_ACTIVITY_TYPE = /* @__PURE__ */ Symbol.for("react.activity");
20576
20576
  /* @__PURE__ */ Symbol.for("react.legacy_hidden");
20577
20577
  /* @__PURE__ */ Symbol.for("react.tracing_marker");
20578
20578
  var REACT_MEMO_CACHE_SENTINEL = /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel");
20579
20579
  /* @__PURE__ */ Symbol.for("react.view_transition");
20580
- var MAYBE_ITERATOR_SYMBOL = Symbol.iterator, REACT_CLIENT_REFERENCE = /* @__PURE__ */ Symbol.for("react.client.reference"), isArrayImpl = Array.isArray, ReactSharedInternals = React5.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, rendererVersion = $$$config.rendererVersion, rendererPackageName = $$$config.rendererPackageName, extraDevToolsConfig = $$$config.extraDevToolsConfig, getPublicInstance = $$$config.getPublicInstance, getRootHostContext = $$$config.getRootHostContext, getChildHostContext = $$$config.getChildHostContext, prepareForCommit = $$$config.prepareForCommit, resetAfterCommit = $$$config.resetAfterCommit, createInstance = $$$config.createInstance;
20580
+ var MAYBE_ITERATOR_SYMBOL = Symbol.iterator, REACT_CLIENT_REFERENCE = /* @__PURE__ */ Symbol.for("react.client.reference"), isArrayImpl = Array.isArray, ReactSharedInternals = React4.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, rendererVersion = $$$config.rendererVersion, rendererPackageName = $$$config.rendererPackageName, extraDevToolsConfig = $$$config.extraDevToolsConfig, getPublicInstance = $$$config.getPublicInstance, getRootHostContext = $$$config.getRootHostContext, getChildHostContext = $$$config.getChildHostContext, prepareForCommit = $$$config.prepareForCommit, resetAfterCommit = $$$config.resetAfterCommit, createInstance = $$$config.createInstance;
20581
20581
  $$$config.cloneMutableInstance;
20582
20582
  var appendInitialChild = $$$config.appendInitialChild, finalizeInitialChildren = $$$config.finalizeInitialChildren, shouldSetTextContent = $$$config.shouldSetTextContent, createTextInstance = $$$config.createTextInstance;
20583
20583
  $$$config.cloneMutableTextInstance;
@@ -43574,9 +43574,6 @@ var AppContext = createContext3({
43574
43574
  keyHandler: null,
43575
43575
  renderer: null
43576
43576
  });
43577
- var useAppContext = () => {
43578
- return useContext2(AppContext);
43579
- };
43580
43577
 
43581
43578
  // ../../opentui/packages/react/src/components/error-boundary.tsx
43582
43579
  import React2 from "react";
@@ -43897,96 +43894,12 @@ function mountGridland(canvas, element, options = {}) {
43897
43894
  };
43898
43895
  }
43899
43896
 
43900
- // ../../opentui/packages/react/src/hooks/use-keyboard.ts
43901
- import { useEffect as useEffect2 } from "react";
43902
-
43903
- // ../../opentui/packages/react/src/hooks/use-event.ts
43904
- import { useCallback, useLayoutEffect, useRef as useRef2 } from "react";
43905
- function useEffectEvent(handler) {
43906
- const handlerRef = useRef2(handler);
43907
- useLayoutEffect(() => {
43908
- handlerRef.current = handler;
43909
- });
43910
- return useCallback((...args) => {
43911
- const fn = handlerRef.current;
43912
- return fn(...args);
43913
- }, []);
43914
- }
43915
-
43916
- // ../../opentui/packages/react/src/hooks/use-keyboard.ts
43917
- var useKeyboard = (handler, options = { release: false }) => {
43918
- const { keyHandler } = useAppContext();
43919
- const stableHandler = useEffectEvent(handler);
43920
- useEffect2(() => {
43921
- keyHandler?.on("keypress", stableHandler);
43922
- if (options?.release) {
43923
- keyHandler?.on("keyrelease", stableHandler);
43924
- }
43925
- return () => {
43926
- keyHandler?.off("keypress", stableHandler);
43927
- if (options?.release) {
43928
- keyHandler?.off("keyrelease", stableHandler);
43929
- }
43930
- };
43931
- }, [keyHandler, options.release]);
43932
- };
43933
-
43934
- // ../../opentui/packages/react/src/hooks/use-renderer.ts
43935
- var useRenderer = () => {
43936
- const { renderer } = useAppContext();
43937
- if (!renderer) {
43938
- throw new Error("Renderer not found.");
43939
- }
43940
- return renderer;
43941
- };
43942
-
43943
- // ../../opentui/packages/react/src/hooks/use-resize.ts
43944
- import { useEffect as useEffect3 } from "react";
43945
- var useOnResize = (callback) => {
43946
- const renderer = useRenderer();
43947
- const stableCallback = useEffectEvent(callback);
43948
- useEffect3(() => {
43949
- renderer.on("resize", stableCallback);
43950
- return () => {
43951
- renderer.off("resize", stableCallback);
43952
- };
43953
- }, [renderer]);
43954
- return renderer;
43955
- };
43956
-
43957
- // ../../opentui/packages/react/src/hooks/use-terminal-dimensions.ts
43958
- import { useState as useState2 } from "react";
43959
- var useTerminalDimensions = () => {
43960
- const renderer = useRenderer();
43961
- const [dimensions, setDimensions] = useState2({
43962
- width: renderer.width,
43963
- height: renderer.height
43964
- });
43965
- const cb = (width, height) => {
43966
- setDimensions({ width, height });
43967
- };
43968
- useOnResize(cb);
43969
- return dimensions;
43970
- };
43971
-
43972
- // ../../opentui/packages/react/src/hooks/use-timeline.ts
43973
- import { useEffect as useEffect4 } from "react";
43974
-
43975
- // ../../opentui/packages/react/src/reconciler/renderer.ts
43976
- import React4 from "react";
43977
- var _r2 = reconciler;
43978
- var flushSync2 = _r2.flushSyncFromReconciler ?? _r2.flushSync;
43979
- var { createPortal } = reconciler;
43980
-
43981
- // ../../opentui/packages/react/src/index.ts
43982
- import { createElement } from "react";
43983
-
43984
43897
  // src/file-drop.ts
43985
- import { useEffect as useEffect5, useState as useState3 } from "react";
43898
+ import { useEffect as useEffect2, useState as useState2 } from "react";
43986
43899
  function useFileDrop(callback) {
43987
43900
  const { renderContext } = useBrowserContext();
43988
- const [isDragOver, setIsDragOver] = useState3(false);
43989
- useEffect5(() => {
43901
+ const [isDragOver, setIsDragOver] = useState2(false);
43902
+ useEffect2(() => {
43990
43903
  const handler = (file) => {
43991
43904
  callback(file);
43992
43905
  };
@@ -44005,10 +43918,10 @@ function useFileDrop(callback) {
44005
43918
  }
44006
43919
 
44007
43920
  // src/paste.ts
44008
- import { useEffect as useEffect6 } from "react";
43921
+ import { useEffect as useEffect3 } from "react";
44009
43922
  function usePaste(callback) {
44010
43923
  const { renderContext } = useBrowserContext();
44011
- useEffect6(() => {
43924
+ useEffect3(() => {
44012
43925
  const handler = (text) => {
44013
43926
  callback(text);
44014
43927
  };
@@ -44018,47 +43931,21 @@ function usePaste(callback) {
44018
43931
  };
44019
43932
  }, [renderContext, callback]);
44020
43933
  }
44021
-
44022
- // src/utils.ts
44023
- function isBrowser() {
44024
- return typeof window !== "undefined" && typeof document !== "undefined";
44025
- }
44026
- function isCanvasSupported() {
44027
- if (!isBrowser()) return false;
44028
- const canvas = document.createElement("canvas");
44029
- return !!canvas.getContext("2d");
44030
- }
44031
- function calculateGridSize(widthPx, heightPx, cellWidth, cellHeight) {
44032
- return {
44033
- cols: Math.max(1, Math.floor(widthPx / cellWidth)),
44034
- rows: Math.max(1, Math.floor(heightPx / cellHeight))
44035
- };
44036
- }
44037
43934
  export {
44038
43935
  BrowserBuffer,
44039
- BrowserContext,
44040
43936
  BrowserRenderContext,
44041
43937
  BrowserRenderer,
44042
43938
  BrowserSyntaxStyle,
44043
43939
  BrowserTextBuffer,
44044
43940
  BrowserTextBufferView,
44045
43941
  CanvasPainter,
44046
- HeadlessRenderer,
44047
43942
  SelectionManager,
44048
43943
  TUI,
44049
- bufferToText,
44050
- calculateGridSize,
44051
43944
  createBrowserRoot,
44052
- createHeadlessRoot,
44053
- isBrowser,
44054
- isCanvasSupported,
44055
43945
  mountGridland,
44056
- setHeadlessRootRenderableClass,
44057
43946
  useBrowserContext,
44058
43947
  useFileDrop,
44059
- useKeyboard,
44060
- usePaste,
44061
- useTerminalDimensions
43948
+ usePaste
44062
43949
  };
44063
43950
  /*! Bundled license information:
44064
43951