@vibecook/ghosttea-react 0.11.1 → 0.13.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.
Files changed (90) hide show
  1. package/README.md +86 -4
  2. package/dist/TerminalSurface.d.ts +53 -0
  3. package/dist/TerminalSurface.d.ts.map +1 -1
  4. package/dist/TerminalSurface.js +106 -12
  5. package/dist/TerminalSurface.js.map +1 -1
  6. package/dist/appearance/AppearanceSettings.d.ts +5 -2
  7. package/dist/appearance/AppearanceSettings.d.ts.map +1 -1
  8. package/dist/appearance/AppearanceSettings.js +14 -3
  9. package/dist/appearance/AppearanceSettings.js.map +1 -1
  10. package/dist/appearance/BackdropBlurControl.d.ts +5 -0
  11. package/dist/appearance/BackdropBlurControl.d.ts.map +1 -0
  12. package/dist/appearance/BackdropBlurControl.js +42 -0
  13. package/dist/appearance/BackdropBlurControl.js.map +1 -0
  14. package/dist/appearance/types.d.ts +10 -0
  15. package/dist/appearance/types.d.ts.map +1 -1
  16. package/dist/catalog-budget.d.ts +2 -2
  17. package/dist/catalog-budget.d.ts.map +1 -1
  18. package/dist/catalog-budget.js +2 -2
  19. package/dist/catalog-budget.js.map +1 -1
  20. package/dist/config.d.ts.map +1 -1
  21. package/dist/config.js +2 -0
  22. package/dist/config.js.map +1 -1
  23. package/dist/index.d.ts +2 -2
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +1 -1
  26. package/dist/index.js.map +1 -1
  27. package/dist/link-input.d.ts +18 -0
  28. package/dist/link-input.d.ts.map +1 -0
  29. package/dist/link-input.js +27 -0
  30. package/dist/link-input.js.map +1 -0
  31. package/dist/renderers/background-geometry.d.ts +16 -0
  32. package/dist/renderers/background-geometry.d.ts.map +1 -0
  33. package/dist/renderers/background-geometry.js +20 -0
  34. package/dist/renderers/background-geometry.js.map +1 -0
  35. package/dist/renderers/glyph-atlas.d.ts +43 -0
  36. package/dist/renderers/glyph-atlas.d.ts.map +1 -0
  37. package/dist/renderers/glyph-atlas.js +175 -0
  38. package/dist/renderers/glyph-atlas.js.map +1 -0
  39. package/dist/renderers/light-adaptation.d.ts +36 -0
  40. package/dist/renderers/light-adaptation.d.ts.map +1 -0
  41. package/dist/renderers/light-adaptation.js +332 -0
  42. package/dist/renderers/light-adaptation.js.map +1 -0
  43. package/dist/renderers/types.d.ts +23 -0
  44. package/dist/renderers/types.d.ts.map +1 -1
  45. package/dist/renderers/types.js.map +1 -1
  46. package/dist/renderers/webgpu-renderer.d.ts +4 -0
  47. package/dist/renderers/webgpu-renderer.d.ts.map +1 -1
  48. package/dist/renderers/webgpu-renderer.js +331 -239
  49. package/dist/renderers/webgpu-renderer.js.map +1 -1
  50. package/dist/routed-control.d.ts +26 -2
  51. package/dist/routed-control.d.ts.map +1 -1
  52. package/dist/routed-control.js +145 -27
  53. package/dist/routed-control.js.map +1 -1
  54. package/dist/routed-frames.d.ts +1 -1
  55. package/dist/routed-frames.d.ts.map +1 -1
  56. package/dist/routed-frames.js +3 -7
  57. package/dist/routed-frames.js.map +1 -1
  58. package/dist/row-damage.d.ts +21 -0
  59. package/dist/row-damage.d.ts.map +1 -0
  60. package/dist/row-damage.js +76 -0
  61. package/dist/row-damage.js.map +1 -0
  62. package/dist/runtime.d.ts +97 -3
  63. package/dist/runtime.d.ts.map +1 -1
  64. package/dist/runtime.js +489 -49
  65. package/dist/runtime.js.map +1 -1
  66. package/dist/styles.css +24 -0
  67. package/dist/terminal-render.worker.js +979 -297
  68. package/dist/terminal-render.worker.js.map +4 -4
  69. package/dist/use-terminal-links.d.ts +17 -0
  70. package/dist/use-terminal-links.d.ts.map +1 -0
  71. package/dist/use-terminal-links.js +101 -0
  72. package/dist/use-terminal-links.js.map +1 -0
  73. package/dist/worker-messages.d.ts +27 -1
  74. package/dist/worker-messages.d.ts.map +1 -1
  75. package/dist/workspace/Workspace.d.ts +19 -3
  76. package/dist/workspace/Workspace.d.ts.map +1 -1
  77. package/dist/workspace/Workspace.js +53 -20
  78. package/dist/workspace/Workspace.js.map +1 -1
  79. package/dist/workspace/index.d.ts +2 -2
  80. package/dist/workspace/index.d.ts.map +1 -1
  81. package/dist/workspace/index.js.map +1 -1
  82. package/dist/workspace/pane-focus.d.ts +8 -0
  83. package/dist/workspace/pane-focus.d.ts.map +1 -0
  84. package/dist/workspace/pane-focus.js +24 -0
  85. package/dist/workspace/pane-focus.js.map +1 -0
  86. package/dist/workspace/pane-layout.d.ts +5 -2
  87. package/dist/workspace/pane-layout.d.ts.map +1 -1
  88. package/dist/workspace/pane-layout.js +45 -6
  89. package/dist/workspace/pane-layout.js.map +1 -1
  90. package/package.json +4 -4
package/README.md CHANGED
@@ -9,6 +9,33 @@ paths. Create one runtime per renderer window, provide it through
9
9
 
10
10
  Import `@vibecook/ghosttea-react/styles.css` once in the renderer entrypoint.
11
11
 
12
+ ## Terminal links
13
+
14
+ Provide `platform.openExternal(url)` to enable Command-hover/click on macOS
15
+ and Ctrl-hover/click elsewhere. Links are underlined per pane, and a successful
16
+ click is consumed before TUI mouse reporting. Modifier release, window blur,
17
+ dragging, and changing terminal output cancel an in-progress link click. The
18
+ underline overlay works with both WebGPU and Canvas rendering.
19
+
20
+ The updated daemon supplies URL and file-path matches and explicit OSC 8
21
+ links, including cell ranges for wrapped links and Unicode text. This includes
22
+ Codex's `~/…` footer, absolute paths and relative source references like
23
+ `src/main.rs:42`. The native desktop host supplies the launch cwd and home;
24
+ OSC 7 working-directory updates take precedence for relative paths. Embedders
25
+ using `TerminalModel` directly can supply these through `set_link_context`.
26
+
27
+ `link-url = false` disables automatic matches while retaining OSC 8. Built-in
28
+ opening accepts HTTP, HTTPS, mailto, FTP, FTPS and file destinations. File links
29
+ open through the desktop's default application. No interaction is enabled when
30
+ the host omits the callback or the frame producer lacks link metadata (including
31
+ legacy logical replicas).
32
+
33
+ Electron hosts use `installGhostteaLinkHost(ipcMain, shell, isTrusted)` from
34
+ `@vibecook/ghosttea-electron/main` and expose
35
+ `createGhostteaLinkBridge(ipcRenderer).openExternal` from the preload. The trust
36
+ callback should admit only the app's terminal renderer URL; the helper also
37
+ rejects subframe senders and validates URL schemes in the main process.
38
+
12
39
  ## Routed terminal transport
13
40
 
14
41
  The additive `transport: "routed"` mode connects one control WebSocket and one
@@ -71,10 +98,40 @@ incompatible message. When supplied, the encoded keystroke is sent directly
71
98
  on the main-thread control socket with no worker `postMessage` hop.
72
99
 
73
100
  Focus changes only rendering priority and demand urgency. Geometry changes
74
- require an explicit `controlsResize`/`claimResizeControl` path, so a focused
75
- mirror cannot resize the PTY. Production counters are available through
76
- `readPerformanceCounters()` without opening a measurement window or draining
77
- the GPU. The existing port-pair transport remains the default rollback path.
101
+ require an explicit `controlsResize`/`claimResizeControl` or
102
+ `takeResizeControl` path, so a focused mirror cannot resize the PTY.
103
+ Production counters are available through `readPerformanceCounters()` without
104
+ opening a measurement window or draining the GPU. The existing port-pair
105
+ transport remains the default rollback path.
106
+
107
+ Because focus is only a scheduling fact, the host decides when a view takes
108
+ the geometry seat. `runtime.takeResizeControl(sessionHandle, viewId, cols,
109
+ rows)` takes it for one view. On the routed transport it claims an empty seat,
110
+ or claims the view's own seat again, which the cell commits as a resize and
111
+ which leaves the PTY alone at the same size. When another view holds the seat,
112
+ on this client or another, it sends one `TransferGeometry` from the holder the
113
+ runtime last saw. The cell answers only the caller, so a pane whose seat
114
+ another client took learns it from the refusal of its own take. A refusal that
115
+ names a newer holder or revision is retried once against it, typically as one
116
+ `TransferGeometry` from the holder it names. The runtime owns that one retry:
117
+ call `takeResizeControl` once per focus gain and never retry it. A take asked
118
+ before the control leg attaches is sent when it attaches. On the port-pair
119
+ transport the take is `claimResizeControl`, which never displaces another
120
+ view. To let the pane focused last size the PTY across windows and devices,
121
+ pass `takeGeometryOnFocus` to `TerminalSurface` or `GhostteaWorkspace`. A pane
122
+ then takes the seat each time it gains focus, and each time it is pressed while
123
+ it already has focus, so a seat another device took while this window kept its
124
+ focus is taken back by pressing the pane. A `controlsResize={false}` mirror
125
+ still never does.
126
+
127
+ `runtime.geometryHolder(sessionHandle)` reads the seat as this runtime last
128
+ saw it: `{ holder, revision, local }`, where `holder` is
129
+ `{ clientId, viewId, holderGeneration }` or `null`, and `local` means one of
130
+ this runtime's views holds it. The `geometry-holder-changed` event reports
131
+ each change of holder as `{ sessionId, sessionHandle, previous, current }`.
132
+ The cell names the holder only in replies to this client's own geometry
133
+ verbs, so another client's take shows up on this client's next claim, take or
134
+ release.
78
135
 
79
136
  For applications that want the complete Ghostty-style desktop experience, use
80
137
  `GhostteaWorkspace` from `@vibecook/ghosttea-react/workspace` and import
@@ -84,6 +141,12 @@ semantics. An optional sidebar component receives the active session plus
84
141
  `addSession`/`activateSession` actions, so application UI can sit beside the
85
142
  terminal without creating a parallel terminal layout or transport.
86
143
 
144
+ The context's `replaceSession(expectedId, replacement)` atomically replaces every
145
+ current attachment of an expected session, preserving pane IDs, split geometry,
146
+ focus and zoom. It returns `false` if the session is no longer attached, so hosts
147
+ can release a shell born after its target pane closed or changed. Unlike
148
+ `mountSession`, it never selects or replaces the active pane implicitly.
149
+
87
150
  The workspace entry point also exports the versioned, UI-independent pane and
88
151
  tab reducers used for cross-platform restoration and conformance. Their JSON
89
152
  documents contain only stable layout IDs and opaque session IDs; resolve those
@@ -171,3 +234,22 @@ Architecture:
171
234
  **⌘⇧O** (`super+shift+o`) is a Ghosttea product extension (remote sessions) and is kept outside Ghostty defaults.
172
235
 
173
236
  Open / deferred Ghostty UX work (font-size protocol, search, undo, jump_to_prompt, mouse goldens, etc.) is tracked in the monorepo at [`bench/ghostty-ux/OPEN-ITEMS.md`](../../bench/ghostty-ux/OPEN-ITEMS.md).
237
+
238
+ ### Pane geometry and host fullscreen
239
+
240
+ `splitSizing="equal"` equalizes the affected row or column after both insertion
241
+ and removal, preserving perpendicular split groups. Hosts can supply
242
+ `onTogglePaneZoom(paneId)` to own fullscreen presentation while Ghosttea still
243
+ resolves the user's configured shortcut. The normal zoom remains the default.
244
+
245
+ `TerminalSurface` observes its container. The canvas displays its intrinsic
246
+ worker bitmap at device-pixel scale, clipped to that container, so an old bitmap
247
+ cannot stretch during a resize. Mount messages include initial pixel geometry
248
+ before a cached scene can draw; a zero-size view waits for a real size. Direct
249
+ `runtime.mount` users can pass `{ width, height, dpr }` as the fifth argument
250
+ when their canvas's intrinsic size differs from its intended viewport.
251
+
252
+ `runtime.sessionHasInput(id)` records input attempts across view remounts in
253
+ this renderer. It is a conservative local-lifetime signal, not proof that an
254
+ externally created or restored session is unused. Hosts retain authority over
255
+ session termination through `onPaneClose`.
@@ -1,8 +1,51 @@
1
1
  import type { SessionSummary, TerminalScrollbarState } from "@vibecook/ghosttea-protocol";
2
2
  import type { GhosttyBindingEntry } from "./bindings/ghostty-bindings.js";
3
3
  import { type CellPoint, type TerminalEffects, type TerminalTheme } from "./renderers/types.js";
4
+ import type { GhostteaTerminalRuntime } from "./runtime.js";
4
5
  export type TerminalMenuAction = "copy" | "paste" | "select-all" | "clear-screen";
5
6
  export type TerminalInputPolicy = "inherit" | "read-only";
7
+ /** What decides whether a surface's focus gain takes the geometry seat. */
8
+ export interface SurfaceFocusPolicy {
9
+ /** The host opted in (`takeGeometryOnFocus`). */
10
+ takeGeometryOnFocus: boolean;
11
+ /** The surface controls resize; a mirror does not. */
12
+ controlsResize: boolean;
13
+ /** The surface takes input; a read-only view is never a controller. */
14
+ interactive: boolean;
15
+ }
16
+ /**
17
+ * Whether a focus change takes the geometry seat: only a focus gain, only when
18
+ * the host opted in, and only for a surface that controls resize and takes
19
+ * input. A `controlsResize: false` mirror never does.
20
+ */
21
+ export declare function focusTakesGeometry(focused: boolean, wasFocused: boolean, policy: SurfaceFocusPolicy): boolean;
22
+ /**
23
+ * Whether a press takes the geometry seat: a press of a surface that already
24
+ * has focus, under a focus gain's own policy. A press of an unfocused surface
25
+ * focuses it, and that gain takes. A press of a focused one changes no focus, so
26
+ * without this a pane whose seat another client took while this window kept its
27
+ * focus (a phone's take) could not be taken back by pressing it.
28
+ */
29
+ export declare function pressTakesGeometry(wasFocused: boolean, policy: SurfaceFocusPolicy): boolean;
30
+ /** A press of the surface, reported before it moves focus: the seat is taken at
31
+ * the surface's current grid when `pressTakesGeometry` says so. */
32
+ export declare function syncSurfacePress(runtime: Pick<GhostteaTerminalRuntime, "takeResizeControl">, surface: {
33
+ sessionHandle: string;
34
+ viewId: string;
35
+ cols: number;
36
+ rows: number;
37
+ }, wasFocused: boolean, policy: SurfaceFocusPolicy): void;
38
+ /**
39
+ * The surface's focus report. Focus always reaches the runtime as a
40
+ * scheduling fact; the seat is taken only when `focusTakesGeometry` says so,
41
+ * at the surface's current grid.
42
+ */
43
+ export declare function syncSurfaceFocus(runtime: Pick<GhostteaTerminalRuntime, "setFocused" | "takeResizeControl">, surface: {
44
+ sessionHandle: string;
45
+ viewId: string;
46
+ cols: number;
47
+ rows: number;
48
+ }, focused: boolean, wasFocused: boolean, policy: SurfaceFocusPolicy): void;
6
49
  export interface TerminalSurfaceProps {
7
50
  session: SessionSummary;
8
51
  theme: TerminalTheme;
@@ -14,6 +57,16 @@ export interface TerminalSurfaceProps {
14
57
  /** Whether the surface is currently visible enough to spend GPU work painting it. */
15
58
  visible?: boolean;
16
59
  controlsResize?: boolean;
60
+ /**
61
+ * Take the session's geometry seat each time this surface gains focus, so
62
+ * the pane focused last sizes the PTY, whichever window or device it is on
63
+ * (last write wins). Off by default: focus alone is a scheduling fact and
64
+ * never changes geometry. It applies only while `controlsResize` is true
65
+ * and the surface takes input; a mirror never claims, takes or resizes on
66
+ * focus. The host owns this policy; the runtime verb is
67
+ * `takeResizeControl`.
68
+ */
69
+ takeGeometryOnFocus?: boolean;
17
70
  /** Viewer-local input fence. It can make a writable session read-only but never grants server rights. */
18
71
  inputPolicy?: TerminalInputPolicy;
19
72
  /** Convenience alias for `inputPolicy="read-only"` when false. */
@@ -1 +1 @@
1
- {"version":3,"file":"TerminalSurface.d.ts","sourceRoot":"","sources":["../src/TerminalSurface.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAoB,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAK5G,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAML,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,aAAa,EACnB,MAAM,sBAAsB,CAAC;AAI9B,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,cAAc,CAAC;AAClF,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,WAAW,CAAC;AAE1D,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,cAAc,CAAC;IACxB,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,QAAQ,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC1C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qFAAqF;IACrF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,yGAAyG;IACzG,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,kEAAkE;IAClE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C,wBAAwB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACtD,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;CAC/E;AAED,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,GAAG,IAAI,EACzD,SAAS,EAAE,sBAAsB,EACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,GAAG,IAAI,CAoBhD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,+BAG1D"}
1
+ {"version":3,"file":"TerminalSurface.d.ts","sourceRoot":"","sources":["../src/TerminalSurface.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useTerminalLinks } from "./use-terminal-links.js";
2
3
  import { useCallback, useEffect, useRef, useState } from "react";
3
4
  import { useGhostteaRuntime } from "./context.js";
4
5
  import { terminalKeyboardLayout, terminalKeyDown, terminalKeyUp } from "./keyboard-input.js";
@@ -7,6 +8,42 @@ import { resolveTerminalBinding } from "./terminal-bindings.js";
7
8
  import { CELL_WIDTH, DEFAULT_EFFECTS, LINE_HEIGHT, ORIGIN_X, ORIGIN_Y, } from "./renderers/types.js";
8
9
  import { accumulateWheelRows, wheelDeltaPixels } from "./scroll-input.js";
9
10
  import { adjustSelectionFocus, usesLocalSelection } from "./selection-input.js";
11
+ /**
12
+ * Whether a focus change takes the geometry seat: only a focus gain, only when
13
+ * the host opted in, and only for a surface that controls resize and takes
14
+ * input. A `controlsResize: false` mirror never does.
15
+ */
16
+ export function focusTakesGeometry(focused, wasFocused, policy) {
17
+ return focused && !wasFocused && policy.takeGeometryOnFocus && policy.controlsResize && policy.interactive;
18
+ }
19
+ /**
20
+ * Whether a press takes the geometry seat: a press of a surface that already
21
+ * has focus, under a focus gain's own policy. A press of an unfocused surface
22
+ * focuses it, and that gain takes. A press of a focused one changes no focus, so
23
+ * without this a pane whose seat another client took while this window kept its
24
+ * focus (a phone's take) could not be taken back by pressing it.
25
+ */
26
+ export function pressTakesGeometry(wasFocused, policy) {
27
+ return wasFocused && policy.takeGeometryOnFocus && policy.controlsResize && policy.interactive;
28
+ }
29
+ /** A press of the surface, reported before it moves focus: the seat is taken at
30
+ * the surface's current grid when `pressTakesGeometry` says so. */
31
+ export function syncSurfacePress(runtime, surface, wasFocused, policy) {
32
+ if (pressTakesGeometry(wasFocused, policy)) {
33
+ runtime.takeResizeControl(surface.sessionHandle, surface.viewId, surface.cols, surface.rows);
34
+ }
35
+ }
36
+ /**
37
+ * The surface's focus report. Focus always reaches the runtime as a
38
+ * scheduling fact; the seat is taken only when `focusTakesGeometry` says so,
39
+ * at the surface's current grid.
40
+ */
41
+ export function syncSurfaceFocus(runtime, surface, focused, wasFocused, policy) {
42
+ runtime.setFocused(surface.sessionHandle, surface.viewId, focused, surface.cols, surface.rows);
43
+ if (focusTakesGeometry(focused, wasFocused, policy)) {
44
+ runtime.takeResizeControl(surface.sessionHandle, surface.viewId, surface.cols, surface.rows);
45
+ }
46
+ }
10
47
  export function viewportSelection(selection, scrollbar, cols, rows) {
11
48
  if (!selection)
12
49
  return null;
@@ -33,7 +70,7 @@ export function TerminalSurface(props) {
33
70
  const { session } = props;
34
71
  return _jsx(TerminalSurfaceSession, { ...props }, `${session.id}:${session.handle}`);
35
72
  }
36
- function TerminalSurfaceSession({ session, theme, effects = DEFAULT_EFFECTS, bindings, active = true, platform, visible = true, controlsResize = active, inputPolicy = "inherit", readWrite = true, onActivate, readClipboard, onCopyAvailabilityChange, onContextMenu, onToggleFullscreen: _onToggleFullscreen, onMenuAction, }) {
73
+ function TerminalSurfaceSession({ session, theme, effects = DEFAULT_EFFECTS, bindings, active = true, platform, visible = true, controlsResize = active, takeGeometryOnFocus = false, inputPolicy = "inherit", readWrite = true, onActivate, readClipboard, onCopyAvailabilityChange, onContextMenu, onToggleFullscreen: _onToggleFullscreen, onMenuAction, }) {
37
74
  // Fullscreen is owned by Workspace platform routing (toggle_fullscreen).
38
75
  void _onToggleFullscreen;
39
76
  const terminalRuntime = useGhostteaRuntime();
@@ -42,8 +79,15 @@ function TerminalSurfaceSession({ session, theme, effects = DEFAULT_EFFECTS, bin
42
79
  const canvasRef = useRef(null);
43
80
  const inputRef = useRef(null);
44
81
  const gridRef = useRef({ cols: session.cols, rows: session.rows });
82
+ const links = useTerminalLinks(terminalRuntime, session.handle, inputRef, gridRef, platform, visible);
45
83
  const controlsResizeRef = useRef(controlsResize);
46
84
  const clientReadWriteRef = useRef(clientReadWrite);
85
+ // Read by the focus sync, so that a policy change does not re-run it and
86
+ // flap focus at the runtime.
87
+ const interactiveRef = useRef(interactive);
88
+ const takeGeometryOnFocusRef = useRef(takeGeometryOnFocus);
89
+ // The focus last reported, so that only a gain can take the seat.
90
+ const focusedRef = useRef(false);
47
91
  const [viewId] = useState(() => crypto.randomUUID());
48
92
  const [inputFocused, setInputFocused] = useState(false);
49
93
  const selectionAnchorRef = useRef(null);
@@ -71,7 +115,9 @@ function TerminalSurfaceSession({ session, theme, effects = DEFAULT_EFFECTS, bin
71
115
  useEffect(() => {
72
116
  controlsResizeRef.current = controlsResize;
73
117
  clientReadWriteRef.current = clientReadWrite;
74
- }, [clientReadWrite, controlsResize]);
118
+ interactiveRef.current = interactive;
119
+ takeGeometryOnFocusRef.current = takeGeometryOnFocus;
120
+ }, [clientReadWrite, controlsResize, interactive, takeGeometryOnFocus]);
75
121
  const setLocalSelection = useCallback((selection, selectAll = false) => {
76
122
  selectionRef.current = selection;
77
123
  selectionAllRef.current = selection !== null && selectAll;
@@ -238,15 +284,24 @@ function TerminalSurfaceSession({ session, theme, effects = DEFAULT_EFFECTS, bin
238
284
  }, [active]);
239
285
  useEffect(() => {
240
286
  const canvas = canvasRef.current;
241
- if (!canvas)
287
+ const surface = canvas?.parentElement;
288
+ if (!canvas || !surface)
242
289
  return;
243
- const handle = terminalRuntime.mount(session.id, session.handle, viewId, canvas);
290
+ const dpr = window.devicePixelRatio || 1;
291
+ canvas.style.setProperty("--ghosttea-canvas-scale", `${1 / dpr}`);
292
+ const handle = terminalRuntime.mount(session.id, session.handle, viewId, canvas, {
293
+ width: surface.clientWidth,
294
+ height: surface.clientHeight,
295
+ dpr,
296
+ });
244
297
  terminalRuntime.setViewInputPolicy(viewId, clientReadWriteRef.current);
245
298
  let { cols, rows } = gridRef.current;
246
299
  const observer = new ResizeObserver(([entry]) => {
247
- if (!entry)
300
+ if (!entry || entry.contentRect.width <= 0 || entry.contentRect.height <= 0)
248
301
  return;
249
- handle.resize(entry.contentRect.width, entry.contentRect.height, window.devicePixelRatio);
302
+ const dpr = window.devicePixelRatio || 1;
303
+ canvas.style.setProperty("--ghosttea-canvas-scale", `${1 / dpr}`);
304
+ handle.resize(entry.contentRect.width, entry.contentRect.height, dpr);
250
305
  const nextCols = Math.max(2, Math.floor((entry.contentRect.width - ORIGIN_X * 2) / CELL_WIDTH));
251
306
  const nextRows = Math.max(1, Math.floor((entry.contentRect.height - ORIGIN_Y * 2) / LINE_HEIGHT));
252
307
  if (nextCols !== cols || nextRows !== rows) {
@@ -257,7 +312,7 @@ function TerminalSurfaceSession({ session, theme, effects = DEFAULT_EFFECTS, bin
257
312
  terminalRuntime.resize(session.id, viewId, cols, rows);
258
313
  }
259
314
  });
260
- observer.observe(canvas);
315
+ observer.observe(surface);
261
316
  return () => {
262
317
  observer.disconnect();
263
318
  handle.dispose();
@@ -315,13 +370,20 @@ function TerminalSurfaceSession({ session, theme, effects = DEFAULT_EFFECTS, bin
315
370
  useEffect(() => {
316
371
  const syncFocus = () => {
317
372
  const { cols, rows } = gridRef.current;
318
- terminalRuntime.setFocused(session.handle, viewId, active && inputFocused && document.hasFocus() && document.activeElement === inputRef.current, cols, rows);
373
+ const focused = active && inputFocused && document.hasFocus() && document.activeElement === inputRef.current;
374
+ syncSurfaceFocus(terminalRuntime, { sessionHandle: session.handle, viewId, cols, rows }, focused, focusedRef.current, {
375
+ takeGeometryOnFocus: takeGeometryOnFocusRef.current,
376
+ controlsResize: controlsResizeRef.current,
377
+ interactive: interactiveRef.current,
378
+ });
379
+ focusedRef.current = focused;
319
380
  };
320
381
  const onWindowBlur = () => {
321
382
  restoreInputFocusRef.current = restoreInputFocusRef.current || document.activeElement === inputRef.current;
322
383
  releaseForwardedKeys();
323
384
  const { cols, rows } = gridRef.current;
324
385
  terminalRuntime.setFocused(session.handle, viewId, false, cols, rows);
386
+ focusedRef.current = false;
325
387
  };
326
388
  const onWindowFocus = () => {
327
389
  if (active && restoreInputFocusRef.current)
@@ -477,8 +539,20 @@ function TerminalSurfaceSession({ session, theme, effects = DEFAULT_EFFECTS, bin
477
539
  }, 40);
478
540
  };
479
541
  const onPointerDown = (event) => {
542
+ syncSurfacePress(terminalRuntime, { sessionHandle: session.handle, viewId, ...gridRef.current }, focusedRef.current, {
543
+ takeGeometryOnFocus: takeGeometryOnFocusRef.current,
544
+ controlsResize: controlsResizeRef.current,
545
+ interactive: interactiveRef.current,
546
+ });
480
547
  onActivate?.();
481
548
  event.currentTarget.focus({ preventScroll: true });
549
+ if (links.begin(event)) {
550
+ pointerModeRef.current = "link";
551
+ event.currentTarget.setPointerCapture(event.pointerId);
552
+ event.preventDefault();
553
+ event.stopPropagation();
554
+ return;
555
+ }
482
556
  const mouseTracking = terminalRuntime.isMouseTracking(session.handle);
483
557
  const localSelection = !interactive || usesLocalSelection(mouseTracking, event.shiftKey);
484
558
  if (event.button === 2 && localSelection)
@@ -501,6 +575,7 @@ function TerminalSurfaceSession({ session, theme, effects = DEFAULT_EFFECTS, bin
501
575
  terminalRuntime.setSelection(session.handle, viewportSelection(selectionRef.current, scrollbarRef.current, cols, rows), viewId);
502
576
  };
503
577
  const onPointerMove = (event) => {
578
+ links.move(event);
504
579
  if (!event.currentTarget.hasPointerCapture(event.pointerId))
505
580
  return;
506
581
  if (pointerModeRef.current === "mouse") {
@@ -520,7 +595,12 @@ function TerminalSurfaceSession({ session, theme, effects = DEFAULT_EFFECTS, bin
520
595
  };
521
596
  const onPointerUp = (event) => {
522
597
  stopSelectionAutoScroll();
523
- if (pointerModeRef.current === "mouse") {
598
+ if (pointerModeRef.current === "link") {
599
+ links.finish(event);
600
+ event.preventDefault();
601
+ event.stopPropagation();
602
+ }
603
+ else if (pointerModeRef.current === "mouse") {
524
604
  sendMouse(event, "release", mouseButton(event.button));
525
605
  }
526
606
  else if (pointerModeRef.current === "selection" && selectionRef.current) {
@@ -606,15 +686,21 @@ function TerminalSurfaceSession({ session, theme, effects = DEFAULT_EFFECTS, bin
606
686
  event.currentTarget.releasePointerCapture(event.pointerId);
607
687
  revealScrollbar();
608
688
  };
609
- return (_jsxs("div", { className: "terminal-surface", children: [_jsx("canvas", { ref: canvasRef, "aria-label": `Terminal session ${session.id}` }), _jsx("textarea", { ref: inputRef, className: "terminal-input", autoCapitalize: "off", autoComplete: "off", spellCheck: false, readOnly: !interactive, "aria-label": "Terminal input", onFocus: () => {
689
+ return (_jsxs("div", { className: "terminal-surface", children: [_jsx("canvas", { ref: canvasRef, "aria-label": `Terminal session ${session.id}`, style: {
690
+ "--ghosttea-canvas-scale": 1 / (typeof window === "undefined" ? 1 : window.devicePixelRatio || 1),
691
+ } }), _jsx("textarea", { ref: inputRef, className: "terminal-input", style: links.hoveredLink ? { cursor: "pointer" } : undefined, title: links.hoveredLink?.uri, "data-terminal-link": links.hoveredLink?.uri, autoCapitalize: "off", autoComplete: "off", spellCheck: false, readOnly: !interactive, "aria-label": "Terminal input", onFocus: () => {
610
692
  onActivate?.();
611
693
  restoreInputFocusRef.current = true;
612
694
  setInputFocused(true);
613
695
  }, onBlur: () => {
696
+ links.clear();
614
697
  restoreInputFocusRef.current = !document.hasFocus();
615
698
  setInputFocused(false);
616
699
  releaseForwardedKeys();
617
- }, onKeyDown: onKeyDown, onKeyUp: onKeyUp, onPaste: onPaste, onPointerDown: onPointerDown, onPointerMove: onPointerMove, onPointerUp: onPointerUp, onPointerCancel: onPointerUp, onWheel: onWheel, onContextMenu: (event) => {
700
+ }, onKeyDown: onKeyDown, onKeyUp: onKeyUp, onPaste: onPaste, onPointerDown: onPointerDown, onPointerMove: onPointerMove, onPointerLeave: links.leave, onLostPointerCapture: () => {
701
+ if (pointerModeRef.current === "link")
702
+ links.clear();
703
+ }, onPointerUp: onPointerUp, onPointerCancel: onPointerUp, onWheel: onWheel, onContextMenu: (event) => {
618
704
  event.preventDefault();
619
705
  onContextMenu?.(selectionRef.current !== null);
620
706
  }, onCompositionEnd: (event) => {
@@ -623,7 +709,15 @@ function TerminalSurfaceSession({ session, theme, effects = DEFAULT_EFFECTS, bin
623
709
  }, onInput: (event) => {
624
710
  if (!event.nativeEvent.isComposing)
625
711
  event.currentTarget.value = "";
626
- } }), scrollbarScrollable ? (_jsx("div", { className: `terminal-scrollbar${scrollbarVisible ? " is-visible" : ""}`, role: "scrollbar", "aria-label": "Terminal scrollback", "aria-orientation": "vertical", "aria-valuemin": 0, "aria-valuemax": scrollbarMaxOffset, "aria-valuenow": scrollbar.offset, onPointerDown: onScrollbarPointerDown, onPointerMove: onScrollbarPointerMove, onPointerUp: onScrollbarPointerUp, onPointerCancel: onScrollbarPointerUp, children: _jsx("div", { className: "terminal-scrollbar-thumb", style: {
712
+ } }), links.hoveredLink ? (_jsx("div", { className: "terminal-link-overlay", "aria-hidden": "true", children: links.hoveredLink.spans.map((span, index) => (_jsx("span", { style: {
713
+ left: ORIGIN_X + span.startColumn * CELL_WIDTH,
714
+ top: ORIGIN_Y + (span.row + 1) * LINE_HEIGHT - 3,
715
+ width: (span.endColumn - span.startColumn) * CELL_WIDTH,
716
+ backgroundColor: `rgb(${theme.foreground
717
+ .slice(0, 3)
718
+ .map((channel) => Math.round(channel * 255))
719
+ .join(" ")})`,
720
+ } }, index))) })) : null, scrollbarScrollable ? (_jsx("div", { className: `terminal-scrollbar${scrollbarVisible ? " is-visible" : ""}`, role: "scrollbar", "aria-label": "Terminal scrollback", "aria-orientation": "vertical", "aria-valuemin": 0, "aria-valuemax": scrollbarMaxOffset, "aria-valuenow": scrollbar.offset, onPointerDown: onScrollbarPointerDown, onPointerMove: onScrollbarPointerMove, onPointerUp: onScrollbarPointerUp, onPointerCancel: onScrollbarPointerUp, children: _jsx("div", { className: "terminal-scrollbar-thumb", style: {
627
721
  height: `${scrollbarSize * 100}%`,
628
722
  top: `${scrollbarPosition * 100}%`,
629
723
  transform: `translateY(-${scrollbarPosition * 100}%)`,
@@ -1 +1 @@
1
- {"version":3,"file":"TerminalSurface.js","sourceRoot":"","sources":["../src/TerminalSurface.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TerminalSurface.js","sourceRoot":"","sources":["../src/TerminalSurface.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { ConfigSnapshot } from "@vibecook/ghosttea-protocol";
2
- import type { GhostteaAppearanceUpdate, GhostteaConfigEditorBridge } from "./types.js";
2
+ import type { GhostteaAppearanceUpdate, GhostteaBackdropBlurBridge, GhostteaConfigEditorBridge } from "./types.js";
3
3
  import type { TerminalShaderEffect } from "../renderers/types.js";
4
4
  export interface AppearanceDraftState {
5
5
  themeName: string | null;
@@ -7,6 +7,8 @@ export interface AppearanceDraftState {
7
7
  opacityCells: boolean;
8
8
  effects: TerminalShaderEffect[];
9
9
  animation: boolean;
10
+ lightAdaptation: "auto" | "off";
11
+ minimumContrast: number;
10
12
  }
11
13
  export declare function appearanceDraftFromConfig(config: ConfigSnapshot): AppearanceDraftState;
12
14
  export declare function sameAppearanceDraft(left: AppearanceDraftState, right: AppearanceDraftState): boolean;
@@ -15,7 +17,8 @@ export interface AppearanceSettingsProps {
15
17
  onClose: () => void;
16
18
  onSave?: (update: GhostteaAppearanceUpdate) => Promise<void>;
17
19
  configEditor?: GhostteaConfigEditorBridge;
20
+ backdropBlur?: GhostteaBackdropBlurBridge;
18
21
  onPreview: (config: ConfigSnapshot | undefined) => void;
19
22
  }
20
- export declare function AppearanceSettings({ config, onClose, onSave, configEditor, onPreview }: AppearanceSettingsProps): import("react").JSX.Element;
23
+ export declare function AppearanceSettings({ config, onClose, onSave, configEditor, backdropBlur, onPreview, }: AppearanceSettingsProps): import("react").JSX.Element;
21
24
  //# sourceMappingURL=AppearanceSettings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AppearanceSettings.d.ts","sourceRoot":"","sources":["../../src/appearance/AppearanceSettings.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAIlE,OAAO,KAAK,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AACvF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElE,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,cAAc,GAAG,oBAAoB,CAUtF;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,oBAAoB,GAAG,OAAO,CASpG;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,wBAAwB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,YAAY,CAAC,EAAE,0BAA0B,CAAC;IAC1C,SAAS,EAAE,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,KAAK,IAAI,CAAC;CACzD;AAED,wBAAgB,kBAAkB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,uBAAuB,+BAsa/G"}
1
+ {"version":3,"file":"AppearanceSettings.d.ts","sourceRoot":"","sources":["../../src/appearance/AppearanceSettings.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAKlE,OAAO,KAAK,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AACnH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElE,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,MAAM,GAAG,KAAK,CAAC;IAChC,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,cAAc,GAAG,oBAAoB,CAYtF;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAWpG;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,wBAAwB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,YAAY,CAAC,EAAE,0BAA0B,CAAC;IAC1C,YAAY,CAAC,EAAE,0BAA0B,CAAC;IAC1C,SAAS,EAAE,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,KAAK,IAAI,CAAC;CACzD;AAED,wBAAgB,kBAAkB,CAAC,EACjC,MAAM,EACN,OAAO,EACP,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,SAAS,GACV,EAAE,uBAAuB,+BA0czB"}