@blit-sh/solid 0.18.0 → 0.19.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.
- package/dist/BlitContext.d.ts +16 -0
- package/dist/BlitContext.d.ts.map +1 -0
- package/dist/BlitContext.jsx +34 -0
- package/dist/BlitContext.jsx.map +1 -0
- package/dist/BlitTerminal.d.ts +25 -0
- package/dist/BlitTerminal.d.ts.map +1 -0
- package/dist/BlitTerminal.jsx +79 -0
- package/dist/BlitTerminal.jsx.map +1 -0
- package/dist/hooks/createBlitSessions.d.ts +3 -0
- package/dist/hooks/createBlitSessions.d.ts.map +1 -0
- package/dist/hooks/createBlitSessions.js +6 -0
- package/dist/hooks/createBlitSessions.js.map +1 -0
- package/dist/hooks/createBlitWorkspace.d.ts +4 -0
- package/dist/hooks/createBlitWorkspace.d.ts.map +1 -0
- package/dist/hooks/createBlitWorkspace.js +13 -0
- package/dist/hooks/createBlitWorkspace.js.map +1 -0
- package/dist/hooks/createBlitWorkspaceConnection.d.ts +7 -0
- package/dist/hooks/createBlitWorkspaceConnection.d.ts.map +1 -0
- package/dist/hooks/createBlitWorkspaceConnection.js +10 -0
- package/dist/hooks/createBlitWorkspaceConnection.js.map +1 -0
- package/dist/hooks/index.d.ts +6 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +6 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/useBlitConnection.d.ts +7 -0
- package/dist/hooks/useBlitConnection.d.ts.map +1 -0
- package/dist/hooks/useBlitConnection.js +15 -0
- package/dist/hooks/useBlitConnection.js.map +1 -0
- package/dist/hooks/useBlitSession.d.ts +9 -0
- package/dist/hooks/useBlitSession.d.ts.map +1 -0
- package/dist/hooks/useBlitSession.js +18 -0
- package/dist/hooks/useBlitSession.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type JSX } from "solid-js";
|
|
2
|
+
import type { BlitWorkspace, TerminalPalette } from "@blit-sh/core";
|
|
3
|
+
export interface BlitContextValue {
|
|
4
|
+
workspace?: BlitWorkspace;
|
|
5
|
+
palette?: TerminalPalette;
|
|
6
|
+
fontFamily?: string;
|
|
7
|
+
fontSize?: number;
|
|
8
|
+
advanceRatio?: number;
|
|
9
|
+
}
|
|
10
|
+
export declare function useBlitContext(): BlitContextValue;
|
|
11
|
+
export interface BlitProviderProps extends BlitContextValue {
|
|
12
|
+
children: JSX.Element;
|
|
13
|
+
}
|
|
14
|
+
export declare function BlitWorkspaceProvider(props: BlitProviderProps): JSX.Element;
|
|
15
|
+
export declare function useRequiredBlitWorkspace(): BlitWorkspace;
|
|
16
|
+
//# sourceMappingURL=BlitContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlitContext.d.ts","sourceRoot":"","sources":["../src/BlitContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEpE,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAID,wBAAgB,cAAc,IAAI,gBAAgB,CAEjD;AAED,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACzD,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;CACvB;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,iBAAiB,eAwB7D;AAED,wBAAgB,wBAAwB,IAAI,aAAa,CAMxD"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { createContext, useContext } from "solid-js";
|
|
2
|
+
const BlitContext = createContext({});
|
|
3
|
+
export function useBlitContext() {
|
|
4
|
+
return useContext(BlitContext);
|
|
5
|
+
}
|
|
6
|
+
export function BlitWorkspaceProvider(props) {
|
|
7
|
+
return (<BlitContext.Provider value={{
|
|
8
|
+
get workspace() {
|
|
9
|
+
return props.workspace;
|
|
10
|
+
},
|
|
11
|
+
get palette() {
|
|
12
|
+
return props.palette;
|
|
13
|
+
},
|
|
14
|
+
get fontFamily() {
|
|
15
|
+
return props.fontFamily;
|
|
16
|
+
},
|
|
17
|
+
get fontSize() {
|
|
18
|
+
return props.fontSize;
|
|
19
|
+
},
|
|
20
|
+
get advanceRatio() {
|
|
21
|
+
return props.advanceRatio;
|
|
22
|
+
},
|
|
23
|
+
}}>
|
|
24
|
+
{props.children}
|
|
25
|
+
</BlitContext.Provider>);
|
|
26
|
+
}
|
|
27
|
+
export function useRequiredBlitWorkspace() {
|
|
28
|
+
const ctx = useBlitContext();
|
|
29
|
+
if (!ctx.workspace) {
|
|
30
|
+
throw new Error("Blit components require a BlitWorkspaceProvider ancestor");
|
|
31
|
+
}
|
|
32
|
+
return ctx.workspace;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=BlitContext.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlitContext.jsx","sourceRoot":"","sources":["../src/BlitContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAY,MAAM,UAAU,CAAC;AAW/D,MAAM,WAAW,GAAG,aAAa,CAAmB,EAAE,CAAC,CAAC;AAExD,MAAM,UAAU,cAAc;IAC5B,OAAO,UAAU,CAAC,WAAW,CAAC,CAAC;AACjC,CAAC;AAMD,MAAM,UAAU,qBAAqB,CAAC,KAAwB;IAC5D,OAAO,CACL,CAAC,WAAW,CAAC,QAAQ,CACnB,KAAK,CAAC,CAAC;YACL,IAAI,SAAS;gBACX,OAAO,KAAK,CAAC,SAAS,CAAC;YACzB,CAAC;YACD,IAAI,OAAO;gBACT,OAAO,KAAK,CAAC,OAAO,CAAC;YACvB,CAAC;YACD,IAAI,UAAU;gBACZ,OAAO,KAAK,CAAC,UAAU,CAAC;YAC1B,CAAC;YACD,IAAI,QAAQ;gBACV,OAAO,KAAK,CAAC,QAAQ,CAAC;YACxB,CAAC;YACD,IAAI,YAAY;gBACd,OAAO,KAAK,CAAC,YAAY,CAAC;YAC5B,CAAC;SACF,CAAC,CAEF;MAAA,CAAC,KAAK,CAAC,QAAQ,CACjB;IAAA,EAAE,WAAW,CAAC,QAAQ,CAAC,CACxB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAC7B,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,GAAG,CAAC,SAAS,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type JSX } from "solid-js";
|
|
2
|
+
import type { SessionId, TerminalPalette } from "@blit-sh/core";
|
|
3
|
+
export interface BlitTerminalProps {
|
|
4
|
+
sessionId: SessionId | null;
|
|
5
|
+
fontFamily?: string;
|
|
6
|
+
fontSize?: number;
|
|
7
|
+
class?: string;
|
|
8
|
+
style?: JSX.CSSProperties;
|
|
9
|
+
palette?: TerminalPalette;
|
|
10
|
+
readOnly?: boolean;
|
|
11
|
+
showCursor?: boolean;
|
|
12
|
+
onRender?: (renderMs: number) => void;
|
|
13
|
+
scrollbarColor?: string;
|
|
14
|
+
scrollbarWidth?: number;
|
|
15
|
+
advanceRatio?: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* BlitTerminal renders a blit terminal inside a WebGL canvas.
|
|
19
|
+
*
|
|
20
|
+
* This is a thin Solid wrapper over `BlitTerminalSurface` from `@blit-sh/core`.
|
|
21
|
+
* It renders a container `<div>`, attaches the surface on mount, and uses
|
|
22
|
+
* `createEffect` to forward reactive prop changes to the surface.
|
|
23
|
+
*/
|
|
24
|
+
export declare function BlitTerminal(props: BlitTerminalProps): JSX.Element;
|
|
25
|
+
//# sourceMappingURL=BlitTerminal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlitTerminal.d.ts","sourceRoot":"","sources":["../src/BlitTerminal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,GAAG,EAAE,MAAM,UAAU,CAAC;AAEtE,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAIhE,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC;IAC1B,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,eAsFpD"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { onMount, onCleanup, createEffect } from "solid-js";
|
|
2
|
+
import { BlitTerminalSurface } from "@blit-sh/core";
|
|
3
|
+
import { useBlitContext, useRequiredBlitWorkspace } from "./BlitContext";
|
|
4
|
+
import { createBlitWorkspaceState } from "./hooks/createBlitWorkspace";
|
|
5
|
+
/**
|
|
6
|
+
* BlitTerminal renders a blit terminal inside a WebGL canvas.
|
|
7
|
+
*
|
|
8
|
+
* This is a thin Solid wrapper over `BlitTerminalSurface` from `@blit-sh/core`.
|
|
9
|
+
* It renders a container `<div>`, attaches the surface on mount, and uses
|
|
10
|
+
* `createEffect` to forward reactive prop changes to the surface.
|
|
11
|
+
*/
|
|
12
|
+
export function BlitTerminal(props) {
|
|
13
|
+
const ctx = useBlitContext();
|
|
14
|
+
const workspace = useRequiredBlitWorkspace();
|
|
15
|
+
const snapshot = createBlitWorkspaceState(workspace);
|
|
16
|
+
let containerRef;
|
|
17
|
+
let surface = null;
|
|
18
|
+
onMount(() => {
|
|
19
|
+
surface = new BlitTerminalSurface({
|
|
20
|
+
sessionId: props.sessionId,
|
|
21
|
+
fontFamily: props.fontFamily ?? ctx.fontFamily,
|
|
22
|
+
fontSize: props.fontSize ?? ctx.fontSize,
|
|
23
|
+
palette: props.palette ?? ctx.palette,
|
|
24
|
+
readOnly: props.readOnly,
|
|
25
|
+
showCursor: props.showCursor,
|
|
26
|
+
onRender: props.onRender,
|
|
27
|
+
scrollbarColor: props.scrollbarColor,
|
|
28
|
+
scrollbarWidth: props.scrollbarWidth,
|
|
29
|
+
advanceRatio: props.advanceRatio ?? ctx.advanceRatio,
|
|
30
|
+
});
|
|
31
|
+
surface.setWorkspace(workspace);
|
|
32
|
+
surface.attach(containerRef);
|
|
33
|
+
});
|
|
34
|
+
onCleanup(() => {
|
|
35
|
+
surface?.dispose();
|
|
36
|
+
surface = null;
|
|
37
|
+
});
|
|
38
|
+
// Forward connection changes. Reading snapshot() inside createEffect makes
|
|
39
|
+
// this reactive — it re-runs whenever the workspace snapshot changes
|
|
40
|
+
// (connection status transitions, new sessions, etc.).
|
|
41
|
+
createEffect(() => {
|
|
42
|
+
const snap = snapshot();
|
|
43
|
+
const session = props.sessionId
|
|
44
|
+
? (snap.sessions.find((s) => s.id === props.sessionId) ?? null)
|
|
45
|
+
: null;
|
|
46
|
+
const conn = session ? workspace.getConnection(session.connectionId) : null;
|
|
47
|
+
surface?.setConnection(conn);
|
|
48
|
+
});
|
|
49
|
+
// Forward prop changes.
|
|
50
|
+
createEffect(() => surface?.setSessionId(props.sessionId));
|
|
51
|
+
createEffect(() => surface?.setPalette(props.palette ?? ctx.palette));
|
|
52
|
+
createEffect(() => surface?.setFontFamily(props.fontFamily ?? ctx.fontFamily));
|
|
53
|
+
createEffect(() => surface?.setFontSize(props.fontSize ?? ctx.fontSize));
|
|
54
|
+
createEffect(() => surface?.setShowCursor(props.showCursor));
|
|
55
|
+
createEffect(() => surface?.setOnRender(props.onRender));
|
|
56
|
+
createEffect(() => surface?.setAdvanceRatio(props.advanceRatio ?? ctx.advanceRatio));
|
|
57
|
+
createEffect(() => surface?.setReadOnly(props.readOnly));
|
|
58
|
+
// Re-send dimensions when connection becomes ready.
|
|
59
|
+
createEffect(() => {
|
|
60
|
+
const snap = snapshot();
|
|
61
|
+
const session = props.sessionId
|
|
62
|
+
? (snap.sessions.find((s) => s.id === props.sessionId) ?? null)
|
|
63
|
+
: null;
|
|
64
|
+
const connection = session
|
|
65
|
+
? (snap.connections.find((c) => c.id === session.connectionId) ?? null)
|
|
66
|
+
: null;
|
|
67
|
+
if (connection?.status === "connected" &&
|
|
68
|
+
props.sessionId !== null &&
|
|
69
|
+
!props.readOnly) {
|
|
70
|
+
surface?.resendSize();
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
return (<div ref={containerRef} class={props.class} style={{
|
|
74
|
+
position: "relative",
|
|
75
|
+
overflow: "hidden",
|
|
76
|
+
...props.style,
|
|
77
|
+
}}/>);
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=BlitTerminal.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlitTerminal.jsx","sourceRoot":"","sources":["../src/BlitTerminal.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createBlitSessions.d.ts","sourceRoot":"","sources":["../../src/hooks/createBlitSessions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGhE,wBAAgB,kBAAkB,CAChC,SAAS,CAAC,EAAE,aAAa,GACxB,MAAM,SAAS,WAAW,EAAE,CAG9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createBlitSessions.js","sourceRoot":"","sources":["../../src/hooks/createBlitSessions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,MAAM,UAAU,kBAAkB,CAChC,SAAyB;IAEzB,MAAM,QAAQ,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC;IACrD,OAAO,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { BlitWorkspace, BlitWorkspaceSnapshot } from "@blit-sh/core";
|
|
2
|
+
export declare function createBlitWorkspace(): BlitWorkspace;
|
|
3
|
+
export declare function createBlitWorkspaceState(workspace?: BlitWorkspace): () => BlitWorkspaceSnapshot;
|
|
4
|
+
//# sourceMappingURL=createBlitWorkspace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createBlitWorkspace.d.ts","sourceRoot":"","sources":["../../src/hooks/createBlitWorkspace.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAG1E,wBAAgB,mBAAmB,IAAI,aAAa,CAEnD;AAED,wBAAgB,wBAAwB,CACtC,SAAS,CAAC,EAAE,aAAa,GACxB,MAAM,qBAAqB,CAM7B"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { createSignal, onCleanup } from "solid-js";
|
|
2
|
+
import { useRequiredBlitWorkspace } from "../BlitContext";
|
|
3
|
+
export function createBlitWorkspace() {
|
|
4
|
+
return useRequiredBlitWorkspace();
|
|
5
|
+
}
|
|
6
|
+
export function createBlitWorkspaceState(workspace) {
|
|
7
|
+
const ws = workspace ?? useRequiredBlitWorkspace();
|
|
8
|
+
const [snapshot, setSnapshot] = createSignal(ws.getSnapshot());
|
|
9
|
+
const unsub = ws.subscribe(() => setSnapshot(ws.getSnapshot()));
|
|
10
|
+
onCleanup(unsub);
|
|
11
|
+
return snapshot;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=createBlitWorkspace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createBlitWorkspace.js","sourceRoot":"","sources":["../../src/hooks/createBlitWorkspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,MAAM,UAAU,mBAAmB;IACjC,OAAO,wBAAwB,EAAE,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,SAAyB;IAEzB,MAAM,EAAE,GAAG,SAAS,IAAI,wBAAwB,EAAE,CAAC;IACnD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAChE,SAAS,CAAC,KAAK,CAAC,CAAC;IACjB,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { BlitTransport, BlitWorkspace, ConnectionId, TransportConfig } from "@blit-sh/core";
|
|
2
|
+
/**
|
|
3
|
+
* Manage a connection's lifecycle within a Solid component.
|
|
4
|
+
* Adds the connection on creation and removes it on cleanup.
|
|
5
|
+
*/
|
|
6
|
+
export declare function createBlitWorkspaceConnection(workspace: BlitWorkspace, connectionId: ConnectionId, transport: BlitTransport | TransportConfig): void;
|
|
7
|
+
//# sourceMappingURL=createBlitWorkspaceConnection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createBlitWorkspaceConnection.d.ts","sourceRoot":"","sources":["../../src/hooks/createBlitWorkspaceConnection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,YAAY,EACZ,eAAe,EAChB,MAAM,eAAe,CAAC;AAEvB;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,aAAa,EACxB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,aAAa,GAAG,eAAe,GACzC,IAAI,CAGN"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { onCleanup } from "solid-js";
|
|
2
|
+
/**
|
|
3
|
+
* Manage a connection's lifecycle within a Solid component.
|
|
4
|
+
* Adds the connection on creation and removes it on cleanup.
|
|
5
|
+
*/
|
|
6
|
+
export function createBlitWorkspaceConnection(workspace, connectionId, transport) {
|
|
7
|
+
workspace.addConnection({ id: connectionId, transport });
|
|
8
|
+
onCleanup(() => workspace.removeConnection(connectionId));
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=createBlitWorkspaceConnection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createBlitWorkspaceConnection.js","sourceRoot":"","sources":["../../src/hooks/createBlitWorkspaceConnection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAQrC;;;GAGG;AACH,MAAM,UAAU,6BAA6B,CAC3C,SAAwB,EACxB,YAA0B,EAC1B,SAA0C;IAE1C,SAAS,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,CAAC;IACzD,SAAS,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;AAC5D,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { useBlitConnection } from "./useBlitConnection";
|
|
2
|
+
export { createBlitSessions } from "./createBlitSessions";
|
|
3
|
+
export { createBlitWorkspace, createBlitWorkspaceState, } from "./createBlitWorkspace";
|
|
4
|
+
export { useBlitSession, useBlitFocusedSession } from "./useBlitSession";
|
|
5
|
+
export { createBlitWorkspaceConnection } from "./createBlitWorkspaceConnection";
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EACL,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { useBlitConnection } from "./useBlitConnection";
|
|
2
|
+
export { createBlitSessions } from "./createBlitSessions";
|
|
3
|
+
export { createBlitWorkspace, createBlitWorkspaceState, } from "./createBlitWorkspace";
|
|
4
|
+
export { useBlitSession, useBlitFocusedSession } from "./useBlitSession";
|
|
5
|
+
export { createBlitWorkspaceConnection } from "./createBlitWorkspaceConnection";
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EACL,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { BlitConnectionSnapshot, BlitWorkspace, SessionId } from "@blit-sh/core";
|
|
2
|
+
/**
|
|
3
|
+
* Look up the connection snapshot for a given session.
|
|
4
|
+
* Plain function — call inside `createEffect` / `createMemo` for reactivity.
|
|
5
|
+
*/
|
|
6
|
+
export declare function useBlitConnection(workspace: BlitWorkspace, sessionId: SessionId | null): BlitConnectionSnapshot | null;
|
|
7
|
+
//# sourceMappingURL=useBlitConnection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBlitConnection.d.ts","sourceRoot":"","sources":["../../src/hooks/useBlitConnection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,aAAa,EACb,SAAS,EACV,MAAM,eAAe,CAAC;AAEvB;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,aAAa,EACxB,SAAS,EAAE,SAAS,GAAG,IAAI,GAC1B,sBAAsB,GAAG,IAAI,CAU/B"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Look up the connection snapshot for a given session.
|
|
3
|
+
* Plain function — call inside `createEffect` / `createMemo` for reactivity.
|
|
4
|
+
*/
|
|
5
|
+
export function useBlitConnection(workspace, sessionId) {
|
|
6
|
+
const snapshot = workspace.getSnapshot();
|
|
7
|
+
if (!sessionId) {
|
|
8
|
+
return snapshot.connections[0] ?? null;
|
|
9
|
+
}
|
|
10
|
+
const session = snapshot.sessions.find((s) => s.id === sessionId);
|
|
11
|
+
if (!session)
|
|
12
|
+
return null;
|
|
13
|
+
return (snapshot.connections.find((c) => c.id === session.connectionId) ?? null);
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=useBlitConnection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBlitConnection.js","sourceRoot":"","sources":["../../src/hooks/useBlitConnection.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAAwB,EACxB,SAA2B;IAE3B,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IACzC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACzC,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;IAClE,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,OAAO,CACL,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CACxE,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { BlitSession, BlitWorkspace, SessionId } from "@blit-sh/core";
|
|
2
|
+
/**
|
|
3
|
+
* Look up a single session by ID from the workspace's current snapshot.
|
|
4
|
+
* This is a plain function (not reactive) — call it inside a `createEffect`
|
|
5
|
+
* or `createMemo` to make it reactive.
|
|
6
|
+
*/
|
|
7
|
+
export declare function useBlitSession(workspace: BlitWorkspace, sessionId: SessionId | null): BlitSession | null;
|
|
8
|
+
export declare function useBlitFocusedSession(workspace: BlitWorkspace): BlitSession | null;
|
|
9
|
+
//# sourceMappingURL=useBlitSession.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBlitSession.d.ts","sourceRoot":"","sources":["../../src/hooks/useBlitSession.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE3E;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,aAAa,EACxB,SAAS,EAAE,SAAS,GAAG,IAAI,GAC1B,WAAW,GAAG,IAAI,CAIpB;AAED,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,aAAa,GACvB,WAAW,GAAG,IAAI,CAMpB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Look up a single session by ID from the workspace's current snapshot.
|
|
3
|
+
* This is a plain function (not reactive) — call it inside a `createEffect`
|
|
4
|
+
* or `createMemo` to make it reactive.
|
|
5
|
+
*/
|
|
6
|
+
export function useBlitSession(workspace, sessionId) {
|
|
7
|
+
if (!sessionId)
|
|
8
|
+
return null;
|
|
9
|
+
const snapshot = workspace.getSnapshot();
|
|
10
|
+
return snapshot.sessions.find((s) => s.id === sessionId) ?? null;
|
|
11
|
+
}
|
|
12
|
+
export function useBlitFocusedSession(workspace) {
|
|
13
|
+
const snapshot = workspace.getSnapshot();
|
|
14
|
+
if (!snapshot.focusedSessionId)
|
|
15
|
+
return null;
|
|
16
|
+
return (snapshot.sessions.find((s) => s.id === snapshot.focusedSessionId) ?? null);
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=useBlitSession.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBlitSession.js","sourceRoot":"","sources":["../../src/hooks/useBlitSession.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,SAAwB,EACxB,SAA2B;IAE3B,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IACzC,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,IAAI,IAAI,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,SAAwB;IAExB,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IACzC,IAAI,CAAC,QAAQ,CAAC,gBAAgB;QAAE,OAAO,IAAI,CAAC;IAC5C,OAAO,CACL,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAC1E,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { BlitTerminal } from "./BlitTerminal";
|
|
2
|
+
export type { BlitTerminalProps } from "./BlitTerminal";
|
|
3
|
+
export { useBlitConnection } from "./hooks/useBlitConnection";
|
|
4
|
+
export { createBlitSessions } from "./hooks/createBlitSessions";
|
|
5
|
+
export { createBlitWorkspace, createBlitWorkspaceState, } from "./hooks/createBlitWorkspace";
|
|
6
|
+
export { useBlitSession, useBlitFocusedSession } from "./hooks/useBlitSession";
|
|
7
|
+
export { createBlitWorkspaceConnection } from "./hooks/createBlitWorkspaceConnection";
|
|
8
|
+
export { BlitWorkspaceProvider } from "./BlitContext";
|
|
9
|
+
export type { BlitContextValue, BlitProviderProps } from "./BlitContext";
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EACL,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AAEtF,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { BlitTerminal } from "./BlitTerminal";
|
|
2
|
+
export { useBlitConnection } from "./hooks/useBlitConnection";
|
|
3
|
+
export { createBlitSessions } from "./hooks/createBlitSessions";
|
|
4
|
+
export { createBlitWorkspace, createBlitWorkspaceState, } from "./hooks/createBlitWorkspace";
|
|
5
|
+
export { useBlitSession, useBlitFocusedSession } from "./hooks/useBlitSession";
|
|
6
|
+
export { createBlitWorkspaceConnection } from "./hooks/createBlitWorkspaceConnection";
|
|
7
|
+
export { BlitWorkspaceProvider } from "./BlitContext";
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EACL,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AAEtF,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blit-sh/solid",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
],
|
|
40
40
|
"peerDependencies": {
|
|
41
41
|
"solid-js": ">=1.8.0",
|
|
42
|
-
"@blit-sh/core": "0.
|
|
42
|
+
"@blit-sh/core": "0.19.0"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"@blit-sh/browser": "file:../../crates/browser/pkg",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"typescript": "^6",
|
|
50
50
|
"vite-plugin-solid": "^2",
|
|
51
51
|
"vitest": "^4",
|
|
52
|
-
"@blit-sh/core": "0.
|
|
52
|
+
"@blit-sh/core": "0.19.0"
|
|
53
53
|
},
|
|
54
54
|
"license": "MIT",
|
|
55
55
|
"scripts": {
|