@mp-lb/termkit 0.2.1 → 0.2.3

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.
Files changed (75) hide show
  1. package/README.md +18 -111
  2. package/dist/Terminal.d.ts +7 -1
  3. package/dist/Terminal.d.ts.map +1 -1
  4. package/dist/Terminal.js +88 -15
  5. package/dist/TermkitContext.d.ts +8 -0
  6. package/dist/TermkitContext.d.ts.map +1 -0
  7. package/dist/TermkitContext.js +2 -0
  8. package/dist/TermkitProvider.d.ts +8 -0
  9. package/dist/TermkitProvider.d.ts.map +1 -0
  10. package/dist/{context.js → TermkitProvider.js} +11 -18
  11. package/dist/createTerminalWriteQueue.d.ts +1 -1
  12. package/dist/createTerminalWriteQueue.d.ts.map +1 -1
  13. package/dist/createTerminalWriteQueue.js +2 -2
  14. package/dist/{store.d.ts → createTermkitStore.d.ts} +1 -1
  15. package/dist/createTermkitStore.d.ts.map +1 -0
  16. package/dist/{store.js → createTermkitStore.js} +11 -5
  17. package/dist/fitTerminal.d.ts.map +1 -1
  18. package/dist/fitTerminal.js +35 -3
  19. package/dist/index.d.ts +16 -5
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +12 -3
  22. package/dist/terminalColors.d.ts +11 -0
  23. package/dist/terminalColors.d.ts.map +1 -0
  24. package/dist/terminalColors.js +57 -0
  25. package/dist/types.d.ts +4 -0
  26. package/dist/types.d.ts.map +1 -1
  27. package/dist/types.js +0 -1
  28. package/dist/useDanglingSessions.d.ts +3 -0
  29. package/dist/useDanglingSessions.d.ts.map +1 -0
  30. package/dist/useDanglingSessions.js +6 -0
  31. package/dist/useFocusedSession.d.ts +2 -0
  32. package/dist/useFocusedSession.d.ts.map +1 -0
  33. package/dist/useFocusedSession.js +6 -0
  34. package/dist/useIsFocused.d.ts +2 -0
  35. package/dist/useIsFocused.d.ts.map +1 -0
  36. package/dist/useIsFocused.js +4 -0
  37. package/dist/useIsRinging.d.ts +2 -0
  38. package/dist/useIsRinging.d.ts.map +1 -0
  39. package/dist/useIsRinging.js +4 -0
  40. package/dist/useRingingSessions.d.ts +2 -0
  41. package/dist/useRingingSessions.d.ts.map +1 -0
  42. package/dist/useRingingSessions.js +6 -0
  43. package/dist/useSession.d.ts +3 -0
  44. package/dist/useSession.d.ts.map +1 -0
  45. package/dist/useSession.js +6 -0
  46. package/dist/useSessionStatus.d.ts +3 -0
  47. package/dist/useSessionStatus.d.ts.map +1 -0
  48. package/dist/useSessionStatus.js +6 -0
  49. package/dist/useSessions.d.ts +3 -0
  50. package/dist/useSessions.d.ts.map +1 -0
  51. package/dist/useSessions.js +6 -0
  52. package/dist/useSlots.d.ts +3 -0
  53. package/dist/useSlots.d.ts.map +1 -0
  54. package/dist/useSlots.js +6 -0
  55. package/dist/useTermkitActions.d.ts +10 -0
  56. package/dist/useTermkitActions.d.ts.map +1 -0
  57. package/dist/useTermkitActions.js +20 -0
  58. package/dist/useTermkitContext.d.ts +3 -0
  59. package/dist/useTermkitContext.d.ts.map +1 -0
  60. package/dist/useTermkitContext.js +8 -0
  61. package/package.json +7 -7
  62. package/dist/Terminal.js.map +0 -1
  63. package/dist/context.d.ts +0 -15
  64. package/dist/context.d.ts.map +0 -1
  65. package/dist/context.js.map +0 -1
  66. package/dist/createTerminalWriteQueue.js.map +0 -1
  67. package/dist/fitTerminal.js.map +0 -1
  68. package/dist/hooks.d.ts +0 -22
  69. package/dist/hooks.d.ts.map +0 -1
  70. package/dist/hooks.js +0 -83
  71. package/dist/hooks.js.map +0 -1
  72. package/dist/index.js.map +0 -1
  73. package/dist/store.d.ts.map +0 -1
  74. package/dist/store.js.map +0 -1
  75. package/dist/types.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -1,10 +1,21 @@
1
- export { TermkitProvider } from "./context.js";
2
- export type { TermkitProviderProps } from "./context.js";
1
+ export { TermkitProvider } from "./TermkitProvider.js";
2
+ export type { TermkitProviderProps } from "./TermkitProvider.js";
3
3
  export { Terminal } from "./Terminal.js";
4
4
  export type { TerminalProps } from "./Terminal.js";
5
- export { useSessions, useSession, useRingingSessions, useIsRinging, useSessionStatus, useFocusedSession, useIsFocused, useSlots, useDanglingSessions, useTermkitActions, } from "./hooks.js";
6
- export type { TermkitActions } from "./hooks.js";
7
- export type { TerminalSlot } from "./store.js";
5
+ export { useSessions } from "./useSessions.js";
6
+ export { useSession } from "./useSession.js";
7
+ export { useRingingSessions } from "./useRingingSessions.js";
8
+ export { useIsRinging } from "./useIsRinging.js";
9
+ export { useSessionStatus } from "./useSessionStatus.js";
10
+ export { useFocusedSession } from "./useFocusedSession.js";
11
+ export { useIsFocused } from "./useIsFocused.js";
12
+ export { useSlots } from "./useSlots.js";
13
+ export { useDanglingSessions } from "./useDanglingSessions.js";
14
+ export { useTermkitActions } from "./useTermkitActions.js";
15
+ export type { TermkitActions } from "./useTermkitActions.js";
16
+ export type { TerminalSlot } from "./createTermkitStore.js";
8
17
  export type { TermkitConfig, TermkitTransport, TermkitTerminalOptions, SessionStatus, LiveSession, } from "./types.js";
18
+ export { terminalColorSchemes } from "./terminalColors.js";
19
+ export type { TerminalColors, TerminalColorSchemeName, } from "./terminalColors.js";
9
20
  export { generateSessionName, SESSION_NAMES } from "@mp-lb/termkit-core";
10
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,YAAY,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAElD,OAAO,EACL,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,QAAQ,EACR,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,YAAY,CAAA;AACnB,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAChD,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,sBAAsB,EACtB,aAAa,EACb,WAAW,GACZ,MAAM,YAAY,CAAA;AAGnB,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,sBAAsB,EACtB,aAAa,EACb,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,YAAY,EACV,cAAc,EACd,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
package/dist/index.js CHANGED
@@ -5,9 +5,18 @@
5
5
  // global session registry, so sessions outlive the terminals that render them —
6
6
  // read the live list, watch for bells, and manage sessions with the hooks below,
7
7
  // whether or not a terminal for them is currently on screen.
8
- export { TermkitProvider } from "./context.js";
8
+ export { TermkitProvider } from "./TermkitProvider.js";
9
9
  export { Terminal } from "./Terminal.js";
10
- export { useSessions, useSession, useRingingSessions, useIsRinging, useSessionStatus, useFocusedSession, useIsFocused, useSlots, useDanglingSessions, useTermkitActions, } from "./hooks.js";
10
+ export { useSessions } from "./useSessions.js";
11
+ export { useSession } from "./useSession.js";
12
+ export { useRingingSessions } from "./useRingingSessions.js";
13
+ export { useIsRinging } from "./useIsRinging.js";
14
+ export { useSessionStatus } from "./useSessionStatus.js";
15
+ export { useFocusedSession } from "./useFocusedSession.js";
16
+ export { useIsFocused } from "./useIsFocused.js";
17
+ export { useSlots } from "./useSlots.js";
18
+ export { useDanglingSessions } from "./useDanglingSessions.js";
19
+ export { useTermkitActions } from "./useTermkitActions.js";
20
+ export { terminalColorSchemes } from "./terminalColors.js";
11
21
  // Re-export the session-name helper so hosts can label new sessions consistently.
12
22
  export { generateSessionName, SESSION_NAMES } from "@mp-lb/termkit-core";
13
- //# sourceMappingURL=index.js.map
@@ -0,0 +1,11 @@
1
+ import type { ITheme } from "@xterm/xterm";
2
+ export type TerminalColorSchemeName = "dark" | "light" | "ansi-dark" | "ansi-light";
3
+ export type TerminalColors = TerminalColorSchemeName | ITheme;
4
+ export declare const terminalColorSchemes: {
5
+ dark: ITheme;
6
+ light: ITheme;
7
+ "ansi-dark": ITheme;
8
+ "ansi-light": ITheme;
9
+ };
10
+ export declare function resolveTerminalColors(colors: TerminalColors | undefined): ITheme;
11
+ //# sourceMappingURL=terminalColors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminalColors.d.ts","sourceRoot":"","sources":["../src/terminalColors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,MAAM,uBAAuB,GAC/B,MAAM,GACN,OAAO,GACP,WAAW,GACX,YAAY,CAAC;AACjB,MAAM,MAAM,cAAc,GAAG,uBAAuB,GAAG,MAAM,CAAC;AAgD9D,eAAO,MAAM,oBAAoB;;;;;CAKkB,CAAC;AAEpD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,cAAc,GAAG,SAAS,GACjC,MAAM,CAIR"}
@@ -0,0 +1,57 @@
1
+ const darkTheme = {
2
+ foreground: "#d8e0e9",
3
+ cursor: "#f0d66a",
4
+ cursorAccent: "#1a1e23",
5
+ selectionBackground: "#3b4554",
6
+ black: "#3b4252",
7
+ red: "#d4777f",
8
+ green: "#a3be8c",
9
+ yellow: "#ebcb8b",
10
+ blue: "#81a1c1",
11
+ magenta: "#b48ead",
12
+ cyan: "#88c0d0",
13
+ white: "#e5e9f0",
14
+ brightBlack: "#4c566a",
15
+ brightRed: "#ff7f8a",
16
+ brightGreen: "#b9d49b",
17
+ brightYellow: "#f0d66a",
18
+ brightBlue: "#8fbcdb",
19
+ brightMagenta: "#caa6c8",
20
+ brightCyan: "#9bdde8",
21
+ brightWhite: "#ffffff",
22
+ };
23
+ const lightTheme = {
24
+ foreground: "#2f3541",
25
+ cursor: "#8a6f00",
26
+ cursorAccent: "#f5f5f5",
27
+ selectionBackground: "#cbd3e2",
28
+ black: "#2f3541",
29
+ red: "#9f2f3a",
30
+ green: "#4d6f24",
31
+ yellow: "#7a5b00",
32
+ blue: "#315f8f",
33
+ magenta: "#7b4f7a",
34
+ cyan: "#2f6f78",
35
+ white: "#dbe1eb",
36
+ brightBlack: "#657084",
37
+ brightRed: "#b82e39",
38
+ brightGreen: "#5f872d",
39
+ brightYellow: "#8f6b00",
40
+ brightBlue: "#3d72a5",
41
+ brightMagenta: "#925f91",
42
+ brightCyan: "#3a8790",
43
+ brightWhite: "#ffffff",
44
+ };
45
+ export const terminalColorSchemes = {
46
+ dark: darkTheme,
47
+ light: lightTheme,
48
+ "ansi-dark": darkTheme,
49
+ "ansi-light": lightTheme,
50
+ };
51
+ export function resolveTerminalColors(colors) {
52
+ if (!colors)
53
+ return {};
54
+ if (typeof colors === "string")
55
+ return terminalColorSchemes[colors];
56
+ return colors;
57
+ }
package/dist/types.d.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  import type { LiveSession } from "@mp-lb/termkit-core";
2
+ import type { ITheme } from "@xterm/xterm";
3
+ import type { TerminalColors } from "./terminalColors.js";
2
4
  export type SessionStatus = "connecting" | "ready" | "disconnected" | "dead";
3
5
  export interface TermkitTransport {
4
6
  list: () => Promise<LiveSession[]>;
@@ -9,6 +11,8 @@ export interface TermkitTerminalOptions {
9
11
  fontFamily?: string;
10
12
  fontSize?: number;
11
13
  cursorBlink?: boolean;
14
+ colors?: TerminalColors;
15
+ theme?: ITheme;
12
16
  background?: string;
13
17
  }
14
18
  export interface TermkitConfig {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAKtD,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,OAAO,GAAG,cAAc,GAAG,MAAM,CAAA;AAO5E,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;IAClC,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IAC7C,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CAC9C;AAGD,MAAM,WAAW,sBAAsB;IACrC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,OAAO,CAAA;IAIrB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAKD,MAAM,WAAW,aAAa;IAO5B,aAAa,EAAE,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,KAAK,MAAM,CAAA;IACtF,SAAS,EAAE,gBAAgB,CAAA;IAE3B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,eAAe,CAAC,EAAE,sBAAsB,CAAA;CACzC;AAED,YAAY,EAAE,WAAW,EAAE,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAK1D,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,OAAO,GAAG,cAAc,GAAG,MAAM,CAAC;AAO7E,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACnC,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/C;AAGD,MAAM,WAAW,sBAAsB;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,MAAM,CAAC,EAAE,cAAc,CAAC;IAIxB,KAAK,CAAC,EAAE,MAAM,CAAC;IAIf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAKD,MAAM,WAAW,aAAa;IAO5B,aAAa,EAAE,CAAC,IAAI,EAAE;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAChC,KAAK,MAAM,CAAC;IACb,SAAS,EAAE,gBAAgB,CAAC;IAE5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,sBAAsB,CAAC;CAC1C;AAED,YAAY,EAAE,WAAW,EAAE,CAAC"}
package/dist/types.js CHANGED
@@ -1,2 +1 @@
1
1
  export {};
2
- //# sourceMappingURL=types.js.map
@@ -0,0 +1,3 @@
1
+ import type { LiveSession } from "@mp-lb/termkit-core";
2
+ export declare const useDanglingSessions: (known: Set<string>) => LiveSession[];
3
+ //# sourceMappingURL=useDanglingSessions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDanglingSessions.d.ts","sourceRoot":"","sources":["../src/useDanglingSessions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGvD,eAAO,MAAM,mBAAmB,GAAI,OAAO,GAAG,CAAC,MAAM,CAAC,KAAG,WAAW,EAMnE,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { useMemo } from "react";
2
+ import { useSessions } from "./useSessions.js";
3
+ export const useDanglingSessions = (known) => {
4
+ const sessions = useSessions();
5
+ return useMemo(() => sessions.filter((s) => !known.has(s.sessionId)), [sessions, known]);
6
+ };
@@ -0,0 +1,2 @@
1
+ export declare const useFocusedSession: () => string | null;
2
+ //# sourceMappingURL=useFocusedSession.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFocusedSession.d.ts","sourceRoot":"","sources":["../src/useFocusedSession.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,iBAAiB,QAAO,MAAM,GAAG,IAG7C,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { useStore } from "zustand";
2
+ import { useTermkitContext } from "./useTermkitContext.js";
3
+ export const useFocusedSession = () => {
4
+ const { store } = useTermkitContext();
5
+ return useStore(store, (s) => s.focusedSlot);
6
+ };
@@ -0,0 +1,2 @@
1
+ export declare const useIsFocused: (sessionId: string) => boolean;
2
+ //# sourceMappingURL=useIsFocused.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useIsFocused.d.ts","sourceRoot":"","sources":["../src/useIsFocused.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,GAAI,WAAW,MAAM,KAAG,OAEhD,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { useFocusedSession } from "./useFocusedSession.js";
2
+ export const useIsFocused = (sessionId) => {
3
+ return useFocusedSession() === sessionId;
4
+ };
@@ -0,0 +1,2 @@
1
+ export declare const useIsRinging: (sessionId: string) => boolean;
2
+ //# sourceMappingURL=useIsRinging.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useIsRinging.d.ts","sourceRoot":"","sources":["../src/useIsRinging.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,GAAI,WAAW,MAAM,KAAG,OAEhD,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { useSession } from "./useSession.js";
2
+ export const useIsRinging = (sessionId) => {
3
+ return useSession(sessionId)?.attention ?? false;
4
+ };
@@ -0,0 +1,2 @@
1
+ export declare const useRingingSessions: () => Set<string>;
2
+ //# sourceMappingURL=useRingingSessions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRingingSessions.d.ts","sourceRoot":"","sources":["../src/useRingingSessions.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,kBAAkB,QAAO,GAAG,CAAC,MAAM,CAM/C,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { useMemo } from "react";
2
+ import { useSessions } from "./useSessions.js";
3
+ export const useRingingSessions = () => {
4
+ const sessions = useSessions();
5
+ return useMemo(() => new Set(sessions.filter((s) => s.attention).map((s) => s.sessionId)), [sessions]);
6
+ };
@@ -0,0 +1,3 @@
1
+ import type { LiveSession } from "@mp-lb/termkit-core";
2
+ export declare const useSession: (sessionId: string) => LiveSession | undefined;
3
+ //# sourceMappingURL=useSession.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSession.d.ts","sourceRoot":"","sources":["../src/useSession.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGvD,eAAO,MAAM,UAAU,GAAI,WAAW,MAAM,KAAG,WAAW,GAAG,SAM5D,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { useMemo } from "react";
2
+ import { useSessions } from "./useSessions.js";
3
+ export const useSession = (sessionId) => {
4
+ const sessions = useSessions();
5
+ return useMemo(() => sessions.find((s) => s.sessionId === sessionId), [sessions, sessionId]);
6
+ };
@@ -0,0 +1,3 @@
1
+ import type { SessionStatus } from "./types.js";
2
+ export declare const useSessionStatus: (sessionId: string) => SessionStatus | undefined;
3
+ //# sourceMappingURL=useSessionStatus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSessionStatus.d.ts","sourceRoot":"","sources":["../src/useSessionStatus.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,eAAO,MAAM,gBAAgB,GAC3B,WAAW,MAAM,KAChB,aAAa,GAAG,SAGlB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { useStore } from "zustand";
2
+ import { useTermkitContext } from "./useTermkitContext.js";
3
+ export const useSessionStatus = (sessionId) => {
4
+ const { store } = useTermkitContext();
5
+ return useStore(store, (s) => s.slots[sessionId]?.status);
6
+ };
@@ -0,0 +1,3 @@
1
+ import type { LiveSession } from "@mp-lb/termkit-core";
2
+ export declare const useSessions: () => LiveSession[];
3
+ //# sourceMappingURL=useSessions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSessions.d.ts","sourceRoot":"","sources":["../src/useSessions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGvD,eAAO,MAAM,WAAW,QAAO,WAAW,EAGzC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { useStore } from "zustand";
2
+ import { useTermkitContext } from "./useTermkitContext.js";
3
+ export const useSessions = () => {
4
+ const { store } = useTermkitContext();
5
+ return useStore(store, (s) => s.live);
6
+ };
@@ -0,0 +1,3 @@
1
+ import type { TerminalSlot } from "./createTermkitStore.js";
2
+ export declare const useSlots: () => Record<string, TerminalSlot>;
3
+ //# sourceMappingURL=useSlots.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSlots.d.ts","sourceRoot":"","sources":["../src/useSlots.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,eAAO,MAAM,QAAQ,QAAO,MAAM,CAAC,MAAM,EAAE,YAAY,CAGtD,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { useStore } from "zustand";
2
+ import { useTermkitContext } from "./useTermkitContext.js";
3
+ export const useSlots = () => {
4
+ const { store } = useTermkitContext();
5
+ return useStore(store, (s) => s.slots);
6
+ };
@@ -0,0 +1,10 @@
1
+ export interface TermkitActions {
2
+ focus: (sessionId: string) => void;
3
+ blur: (sessionId: string) => void;
4
+ kill: (sessionId: string) => void;
5
+ dismissBell: (sessionId: string) => void;
6
+ dismissAllBells: () => void;
7
+ setPendingCommand: (sessionId: string, command: string) => void;
8
+ }
9
+ export declare const useTermkitActions: () => TermkitActions;
10
+ //# sourceMappingURL=useTermkitActions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTermkitActions.d.ts","sourceRoot":"","sources":["../src/useTermkitActions.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAE7B,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAElC,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAElC,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAEzC,eAAe,EAAE,MAAM,IAAI,CAAC;IAE5B,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACjE;AAED,eAAO,MAAM,iBAAiB,QAAO,cAgBpC,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { useMemo } from "react";
2
+ import { useTermkitContext } from "./useTermkitContext.js";
3
+ export const useTermkitActions = () => {
4
+ const { store } = useTermkitContext();
5
+ return useMemo(() => {
6
+ const s = () => store.getState();
7
+ return {
8
+ focus: (id) => s().focus(id),
9
+ blur: (id) => s().blur(id),
10
+ kill: (id) => s().kill(id),
11
+ dismissBell: (id) => s().dismissBell(id),
12
+ dismissAllBells: () => {
13
+ for (const sess of s().live)
14
+ if (sess.attention)
15
+ s().dismissBell(sess.sessionId);
16
+ },
17
+ setPendingCommand: (id, command) => s().setPendingCommand(id, command),
18
+ };
19
+ }, [store]);
20
+ };
@@ -0,0 +1,3 @@
1
+ import { type TermkitContextValue } from "./TermkitContext.js";
2
+ export declare const useTermkitContext: () => TermkitContextValue;
3
+ //# sourceMappingURL=useTermkitContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTermkitContext.d.ts","sourceRoot":"","sources":["../src/useTermkitContext.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/E,eAAO,MAAM,iBAAiB,QAAO,mBAKpC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { useContext } from "react";
2
+ import { TermkitContext } from "./TermkitContext.js";
3
+ export const useTermkitContext = () => {
4
+ const ctx = useContext(TermkitContext);
5
+ if (!ctx)
6
+ throw new Error("useTermkit must be used within a <TermkitProvider>");
7
+ return ctx;
8
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mp-lb/termkit",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -16,14 +16,12 @@
16
16
  "package.json",
17
17
  "README.md"
18
18
  ],
19
- "publishConfig": {
20
- "access": "public"
21
- },
19
+ "description": "Build terminal experiences.",
22
20
  "dependencies": {
23
21
  "@xterm/addon-fit": "^0.11.0",
24
22
  "@xterm/xterm": "^6.0.0",
25
23
  "zustand": "^5.0.14",
26
- "@mp-lb/termkit-core": "0.0.1"
24
+ "@mp-lb/termkit-core": "0.0.2"
27
25
  },
28
26
  "peerDependencies": {
29
27
  "react": "^18.0.0 || ^19.0.0"
@@ -32,9 +30,11 @@
32
30
  "@types/react": "^19",
33
31
  "react": "^19.2.6"
34
32
  },
33
+ "publishConfig": {
34
+ "access": "public"
35
+ },
35
36
  "scripts": {
36
- "build": "tsc --project tsconfig.json",
37
- "dev": "tsc --project tsconfig.json --watch --preserveWatchOutput",
37
+ "build": "tsc --project tsconfig.build.json",
38
38
  "typecheck": "tsc --project tsconfig.json --noEmit",
39
39
  "test": "vitest run"
40
40
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"Terminal.js","sourceRoot":"","sources":["../src/Terminal.tsx"],"names":[],"mappings":"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"}
package/dist/context.d.ts DELETED
@@ -1,15 +0,0 @@
1
- import { type ReactNode } from "react";
2
- import { type TermkitStore } from "./store.js";
3
- import type { TermkitConfig } from "./types.js";
4
- interface TermkitContextValue {
5
- store: TermkitStore;
6
- config: TermkitConfig;
7
- }
8
- export interface TermkitProviderProps {
9
- config: TermkitConfig;
10
- children: ReactNode;
11
- }
12
- export declare function TermkitProvider({ config, children }: TermkitProviderProps): import("react/jsx-runtime").JSX.Element;
13
- export declare function useTermkitContext(): TermkitContextValue;
14
- export {};
15
- //# sourceMappingURL=context.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAgD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AACpF,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,YAAY,CAAA;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C,UAAU,mBAAmB;IAC3B,KAAK,EAAE,YAAY,CAAA;IACnB,MAAM,EAAE,aAAa,CAAA;CACtB;AAID,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,aAAa,CAAA;IACrB,QAAQ,EAAE,SAAS,CAAA;CACpB;AAOD,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,oBAAoB,2CAiCzE;AAED,wBAAgB,iBAAiB,IAAI,mBAAmB,CAIvD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAkB,MAAM,OAAO,CAAA;AACpF,OAAO,EAAE,kBAAkB,EAAqB,MAAM,YAAY,CAAA;AAQlE,MAAM,cAAc,GAAG,aAAa,CAA6B,IAAI,CAAC,CAAA;AAOtE,iFAAiF;AACjF,mFAAmF;AACnF,iFAAiF;AACjF,kFAAkF;AAClF,2DAA2D;AAC3D,MAAM,UAAU,eAAe,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAwB;IACxE,gFAAgF;IAChF,8EAA8E;IAC9E,MAAM,QAAQ,GAAG,MAAM,CAA6B,IAAI,CAAC,CAAA;IACzD,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAC9B,QAAQ,CAAC,OAAO,GAAG,EAAE,KAAK,EAAE,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IAC5E,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAA;IAElC,+EAA+E;IAC/E,6EAA6E;IAC7E,0DAA0D;IAC1D,MAAM,UAAU,GAAG,MAAM,CAAC,cAAc,IAAI,IAAI,CAAA;IAChD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,GAAG,KAAK,CAAA;QACrB,KAAK,UAAU,IAAI;YACjB,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;gBAC9C,IAAI,CAAC,SAAS;oBAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;YACpD,CAAC;YAAC,MAAM,CAAC;gBACP,4DAA4D;YAC9D,CAAC;QACH,CAAC;QACD,IAAI,EAAE,CAAA;QACN,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;QACxC,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAA;YAChB,aAAa,CAAC,EAAE,CAAC,CAAA;QACnB,CAAC,CAAA;QACD,qFAAqF;IACvF,CAAC,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAA;IAEzC,OAAO,KAAC,cAAc,CAAC,QAAQ,IAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,YAAG,QAAQ,GAA2B,CAAA;AAC/F,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,MAAM,GAAG,GAAG,UAAU,CAAC,cAAc,CAAC,CAAA;IACtC,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;IAC/E,OAAO,GAAG,CAAA;AACZ,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"createTerminalWriteQueue.js","sourceRoot":"","sources":["../src/createTerminalWriteQueue.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,IAAsB,EAAE,EAAE;IACjE,IAAI,MAAM,GAAa,EAAE,CAAA;IACzB,IAAI,SAAS,GAAG,KAAK,CAAA;IACrB,IAAI,UAAU,GAAG,KAAK,CAAA;IAEtB,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,IAAI,UAAU,IAAI,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAM;QAE1D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC5B,MAAM,GAAG,EAAE,CAAA;QACX,SAAS,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE;YACpB,SAAS,GAAG,KAAK,CAAA;YACjB,KAAK,EAAE,CAAA;QACT,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,OAAO;QACL,KAAK,CAAC,IAAY;YAChB,IAAI,UAAU;gBAAE,OAAM;YACtB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACjB,KAAK,EAAE,CAAA;QACT,CAAC;QACD,KAAK;YACH,MAAM,GAAG,EAAE,CAAA;QACb,CAAC;QACD,OAAO;YACL,UAAU,GAAG,IAAI,CAAA;YACjB,MAAM,GAAG,EAAE,CAAA;QACb,CAAC;KACF,CAAA;AACH,CAAC,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"fitTerminal.js","sourceRoot":"","sources":["../src/fitTerminal.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,SAAsB,EACtB,IAAW,EACX,QAAkB,EAClB,QAA6B,EACR,EAAE;IACvB,IAAI,SAAS,CAAC,WAAW,KAAK,CAAC,IAAI,SAAS,CAAC,YAAY,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAA;IAEhF,QAAQ,CAAC,GAAG,EAAE,CAAA;IAEd,MAAM,QAAQ,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAA;IACrD,IAAI,QAAQ,EAAE,IAAI,KAAK,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI;QAAE,OAAO,QAAQ,CAAA;IAExF,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA"}
package/dist/hooks.d.ts DELETED
@@ -1,22 +0,0 @@
1
- import type { LiveSession } from "@mp-lb/termkit-core";
2
- import type { TerminalSlot } from "./store.js";
3
- import type { SessionStatus } from "./types.js";
4
- export declare function useSessions(): LiveSession[];
5
- export declare function useSession(sessionId: string): LiveSession | undefined;
6
- export declare function useRingingSessions(): Set<string>;
7
- export declare function useIsRinging(sessionId: string): boolean;
8
- export declare function useSessionStatus(sessionId: string): SessionStatus | undefined;
9
- export declare function useFocusedSession(): string | null;
10
- export declare function useIsFocused(sessionId: string): boolean;
11
- export declare function useSlots(): Record<string, TerminalSlot>;
12
- export declare function useDanglingSessions(known: Set<string>): LiveSession[];
13
- export interface TermkitActions {
14
- focus: (sessionId: string) => void;
15
- blur: (sessionId: string) => void;
16
- kill: (sessionId: string) => void;
17
- dismissBell: (sessionId: string) => void;
18
- dismissAllBells: () => void;
19
- setPendingCommand: (sessionId: string, command: string) => void;
20
- }
21
- export declare function useTermkitActions(): TermkitActions;
22
- //# sourceMappingURL=hooks.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAK/C,wBAAgB,WAAW,IAAI,WAAW,EAAE,CAG3C;AAGD,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAGrE;AAID,wBAAgB,kBAAkB,IAAI,GAAG,CAAC,MAAM,CAAC,CAMhD;AAID,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEvD;AAID,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAG7E;AAOD,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,IAAI,CAGjD;AAID,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEvD;AAMD,wBAAgB,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAGvD;AAMD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,WAAW,EAAE,CAGrE;AAED,MAAM,WAAW,cAAc;IAE7B,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IAEjC,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IAEjC,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IAExC,eAAe,EAAE,MAAM,IAAI,CAAA;IAE3B,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CAChE;AAID,wBAAgB,iBAAiB,IAAI,cAAc,CAelD"}
package/dist/hooks.js DELETED
@@ -1,83 +0,0 @@
1
- import { useMemo } from "react";
2
- import { useStore } from "zustand";
3
- import { useTermkitContext } from "./context.js";
4
- // The live snapshot of every session the daemon is running — the "global" view,
5
- // kept fresh by the provider's poller. Independent of which <Terminal>s are
6
- // mounted: a backgrounded agent session shows up here with no terminal on screen.
7
- export function useSessions() {
8
- const { store } = useTermkitContext();
9
- return useStore(store, (s) => s.live);
10
- }
11
- // One live session by id, or undefined if it isn't running.
12
- export function useSession(sessionId) {
13
- const sessions = useSessions();
14
- return useMemo(() => sessions.find((s) => s.sessionId === sessionId), [sessions, sessionId]);
15
- }
16
- // The set of session ids currently ringing for attention — the bells. Render a
17
- // badge for any tab whose id is in here.
18
- export function useRingingSessions() {
19
- const sessions = useSessions();
20
- return useMemo(() => new Set(sessions.filter((s) => s.attention).map((s) => s.sessionId)), [sessions]);
21
- }
22
- // Whether a specific session is ringing. Convenience over useRingingSessions for a
23
- // single tab.
24
- export function useIsRinging(sessionId) {
25
- return useSession(sessionId)?.attention ?? false;
26
- }
27
- // A mounted <Terminal>'s client-side connection status (connecting / ready /
28
- // disconnected / dead). Undefined if no terminal is attached for this session.
29
- export function useSessionStatus(sessionId) {
30
- const { store } = useTermkitContext();
31
- return useStore(store, (s) => s.slots[sessionId]?.status);
32
- }
33
- // The session that currently holds keyboard focus, or null if none does.
34
- // Reactive: it re-renders when focus moves — including when the user clicks into a
35
- // terminal, which termkit's <Terminal> reports to the store. Host UIs use this to
36
- // highlight the focused session, which they can't track themselves because focus
37
- // changes originate inside the terminal.
38
- export function useFocusedSession() {
39
- const { store } = useTermkitContext();
40
- return useStore(store, (s) => s.focusedSlot);
41
- }
42
- // Whether a specific session currently holds focus. Convenience over
43
- // useFocusedSession for a single tab.
44
- export function useIsFocused(sessionId) {
45
- return useFocusedSession() === sessionId;
46
- }
47
- // The client-side slot registry: every session a mounted <Terminal> has attached,
48
- // keyed by id, with its connection status. This is the "what's mounted and how's
49
- // its socket" view — distinct from useSessions() (what the daemon is running).
50
- // Mainly for diagnostics; most UIs want useSessions()/useSessionStatus() instead.
51
- export function useSlots() {
52
- const { store } = useTermkitContext();
53
- return useStore(store, (s) => s.slots);
54
- }
55
- // Live PTYs with no matching id in `known` — orphaned shells. Pass the set of ids
56
- // your UI knows about (its tabs); anything live but unknown is a dangler you can
57
- // surface for cleanup. The known-id bookkeeping is host domain, so it lives there;
58
- // termkit just does the diff.
59
- export function useDanglingSessions(known) {
60
- const sessions = useSessions();
61
- return useMemo(() => sessions.filter((s) => !known.has(s.sessionId)), [sessions, known]);
62
- }
63
- // Imperative session controls. Stable across renders (the store identity is
64
- // stable), so safe to use without memoising.
65
- export function useTermkitActions() {
66
- const { store } = useTermkitContext();
67
- return useMemo(() => {
68
- const s = () => store.getState();
69
- return {
70
- focus: (id) => s().focus(id),
71
- blur: (id) => s().blur(id),
72
- kill: (id) => s().kill(id),
73
- dismissBell: (id) => s().dismissBell(id),
74
- dismissAllBells: () => {
75
- for (const sess of s().live)
76
- if (sess.attention)
77
- s().dismissBell(sess.sessionId);
78
- },
79
- setPendingCommand: (id, command) => s().setPendingCommand(id, command),
80
- };
81
- }, [store]);
82
- }
83
- //# sourceMappingURL=hooks.js.map
package/dist/hooks.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,EAAE;AACF,gFAAgF;AAChF,kFAAkF;AAClF,gFAAgF;AAChF,iFAAiF;AACjF,6DAA6D;AAE7D,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAGxC,OAAO,EACL,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,QAAQ,EACR,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,YAAY,CAAA;AAYnB,kFAAkF;AAClF,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAOjE,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,aAAa,CAAA;CACtB;AAED,MAAM,WAAW,YAAY;IAE3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IAEnC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAI1B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAIvC,IAAI,EAAE,WAAW,EAAE,CAAA;IAGnB,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,KAAK,IAAI,CAAA;IAG7D,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IAGjC,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IAC/D,qBAAqB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAA;IAG3D,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IAGxC,OAAO,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,IAAI,CAAA;CACvC;AAED,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAA;AAEjD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,GAAG,YAAY,CAwF5E"}
package/dist/store.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}