@gridland/web 0.2.20 → 0.2.21
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 +3 -49
- package/dist/index.js +10 -123
- package/dist/index.js.map +4 -4
- package/dist/{next-BWTklBmN.d.ts → next-BCubNgui.d.ts} +1 -1
- package/dist/next.d.ts +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import { B as BrowserRenderer, W as WidthMethod, R as RGBA, a as BrowserRenderContext
|
|
2
|
-
export {
|
|
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
|
-
|
|
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
|
|
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 =
|
|
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
|
|
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 =
|
|
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
|
|
43898
|
+
import { useEffect as useEffect2, useState as useState2 } from "react";
|
|
43986
43899
|
function useFileDrop(callback) {
|
|
43987
43900
|
const { renderContext } = useBrowserContext();
|
|
43988
|
-
const [isDragOver, setIsDragOver] =
|
|
43989
|
-
|
|
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
|
|
43921
|
+
import { useEffect as useEffect3 } from "react";
|
|
44009
43922
|
function usePaste(callback) {
|
|
44010
43923
|
const { renderContext } = useBrowserContext();
|
|
44011
|
-
|
|
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
|
-
|
|
44060
|
-
usePaste,
|
|
44061
|
-
useTerminalDimensions
|
|
43948
|
+
usePaste
|
|
44062
43949
|
};
|
|
44063
43950
|
/*! Bundled license information:
|
|
44064
43951
|
|