@vibecook/ghosttea-react 0.12.0 → 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.
- package/README.md +59 -4
- package/dist/TerminalSurface.d.ts +53 -0
- package/dist/TerminalSurface.d.ts.map +1 -1
- package/dist/TerminalSurface.js +76 -9
- package/dist/TerminalSurface.js.map +1 -1
- package/dist/appearance/AppearanceSettings.d.ts +2 -0
- package/dist/appearance/AppearanceSettings.d.ts.map +1 -1
- package/dist/appearance/AppearanceSettings.js +12 -2
- package/dist/appearance/AppearanceSettings.js.map +1 -1
- package/dist/appearance/types.d.ts +4 -0
- package/dist/appearance/types.d.ts.map +1 -1
- package/dist/catalog-budget.d.ts +2 -2
- package/dist/catalog-budget.d.ts.map +1 -1
- package/dist/catalog-budget.js +2 -2
- package/dist/catalog-budget.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -0
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/renderers/glyph-atlas.d.ts +43 -0
- package/dist/renderers/glyph-atlas.d.ts.map +1 -0
- package/dist/renderers/glyph-atlas.js +175 -0
- package/dist/renderers/glyph-atlas.js.map +1 -0
- package/dist/renderers/light-adaptation.d.ts +36 -0
- package/dist/renderers/light-adaptation.d.ts.map +1 -0
- package/dist/renderers/light-adaptation.js +332 -0
- package/dist/renderers/light-adaptation.js.map +1 -0
- package/dist/renderers/types.d.ts +21 -0
- package/dist/renderers/types.d.ts.map +1 -1
- package/dist/renderers/types.js.map +1 -1
- package/dist/renderers/webgpu-renderer.d.ts +4 -0
- package/dist/renderers/webgpu-renderer.d.ts.map +1 -1
- package/dist/renderers/webgpu-renderer.js +321 -237
- package/dist/renderers/webgpu-renderer.js.map +1 -1
- package/dist/routed-control.d.ts +26 -2
- package/dist/routed-control.d.ts.map +1 -1
- package/dist/routed-control.js +145 -27
- package/dist/routed-control.js.map +1 -1
- package/dist/routed-frames.d.ts +1 -1
- package/dist/routed-frames.d.ts.map +1 -1
- package/dist/routed-frames.js +3 -7
- package/dist/routed-frames.js.map +1 -1
- package/dist/row-damage.d.ts +21 -0
- package/dist/row-damage.d.ts.map +1 -0
- package/dist/row-damage.js +76 -0
- package/dist/row-damage.js.map +1 -0
- package/dist/runtime.d.ts +92 -3
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +439 -43
- package/dist/runtime.js.map +1 -1
- package/dist/styles.css +11 -0
- package/dist/terminal-render.worker.js +908 -288
- package/dist/terminal-render.worker.js.map +4 -4
- package/dist/worker-messages.d.ts +22 -1
- package/dist/worker-messages.d.ts.map +1 -1
- package/dist/workspace/Workspace.d.ts +15 -2
- package/dist/workspace/Workspace.d.ts.map +1 -1
- package/dist/workspace/Workspace.js +36 -12
- package/dist/workspace/Workspace.js.map +1 -1
- package/dist/workspace/pane-layout.d.ts +3 -1
- package/dist/workspace/pane-layout.d.ts.map +1 -1
- package/dist/workspace/pane-layout.js +16 -4
- package/dist/workspace/pane-layout.js.map +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -98,10 +98,40 @@ incompatible message. When supplied, the encoded keystroke is sent directly
|
|
|
98
98
|
on the main-thread control socket with no worker `postMessage` hop.
|
|
99
99
|
|
|
100
100
|
Focus changes only rendering priority and demand urgency. Geometry changes
|
|
101
|
-
require an explicit `controlsResize`/`claimResizeControl`
|
|
102
|
-
mirror cannot resize the PTY.
|
|
103
|
-
`readPerformanceCounters()` without
|
|
104
|
-
the GPU. The existing port-pair
|
|
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.
|
|
105
135
|
|
|
106
136
|
For applications that want the complete Ghostty-style desktop experience, use
|
|
107
137
|
`GhostteaWorkspace` from `@vibecook/ghosttea-react/workspace` and import
|
|
@@ -111,6 +141,12 @@ semantics. An optional sidebar component receives the active session plus
|
|
|
111
141
|
`addSession`/`activateSession` actions, so application UI can sit beside the
|
|
112
142
|
terminal without creating a parallel terminal layout or transport.
|
|
113
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
|
+
|
|
114
150
|
The workspace entry point also exports the versioned, UI-independent pane and
|
|
115
151
|
tab reducers used for cross-platform restoration and conformance. Their JSON
|
|
116
152
|
documents contain only stable layout IDs and opaque session IDs; resolve those
|
|
@@ -198,3 +234,22 @@ Architecture:
|
|
|
198
234
|
**⌘⇧O** (`super+shift+o`) is a Ghosttea product extension (remote sessions) and is kept outside Ghostty defaults.
|
|
199
235
|
|
|
200
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":"AAGA,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;
|
|
1
|
+
{"version":3,"file":"TerminalSurface.d.ts","sourceRoot":"","sources":["../src/TerminalSurface.tsx"],"names":[],"mappings":"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"}
|
package/dist/TerminalSurface.js
CHANGED
|
@@ -8,6 +8,42 @@ import { resolveTerminalBinding } from "./terminal-bindings.js";
|
|
|
8
8
|
import { CELL_WIDTH, DEFAULT_EFFECTS, LINE_HEIGHT, ORIGIN_X, ORIGIN_Y, } from "./renderers/types.js";
|
|
9
9
|
import { accumulateWheelRows, wheelDeltaPixels } from "./scroll-input.js";
|
|
10
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
|
+
}
|
|
11
47
|
export function viewportSelection(selection, scrollbar, cols, rows) {
|
|
12
48
|
if (!selection)
|
|
13
49
|
return null;
|
|
@@ -34,7 +70,7 @@ export function TerminalSurface(props) {
|
|
|
34
70
|
const { session } = props;
|
|
35
71
|
return _jsx(TerminalSurfaceSession, { ...props }, `${session.id}:${session.handle}`);
|
|
36
72
|
}
|
|
37
|
-
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, }) {
|
|
38
74
|
// Fullscreen is owned by Workspace platform routing (toggle_fullscreen).
|
|
39
75
|
void _onToggleFullscreen;
|
|
40
76
|
const terminalRuntime = useGhostteaRuntime();
|
|
@@ -46,6 +82,12 @@ function TerminalSurfaceSession({ session, theme, effects = DEFAULT_EFFECTS, bin
|
|
|
46
82
|
const links = useTerminalLinks(terminalRuntime, session.handle, inputRef, gridRef, platform, visible);
|
|
47
83
|
const controlsResizeRef = useRef(controlsResize);
|
|
48
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);
|
|
49
91
|
const [viewId] = useState(() => crypto.randomUUID());
|
|
50
92
|
const [inputFocused, setInputFocused] = useState(false);
|
|
51
93
|
const selectionAnchorRef = useRef(null);
|
|
@@ -73,7 +115,9 @@ function TerminalSurfaceSession({ session, theme, effects = DEFAULT_EFFECTS, bin
|
|
|
73
115
|
useEffect(() => {
|
|
74
116
|
controlsResizeRef.current = controlsResize;
|
|
75
117
|
clientReadWriteRef.current = clientReadWrite;
|
|
76
|
-
|
|
118
|
+
interactiveRef.current = interactive;
|
|
119
|
+
takeGeometryOnFocusRef.current = takeGeometryOnFocus;
|
|
120
|
+
}, [clientReadWrite, controlsResize, interactive, takeGeometryOnFocus]);
|
|
77
121
|
const setLocalSelection = useCallback((selection, selectAll = false) => {
|
|
78
122
|
selectionRef.current = selection;
|
|
79
123
|
selectionAllRef.current = selection !== null && selectAll;
|
|
@@ -240,15 +284,24 @@ function TerminalSurfaceSession({ session, theme, effects = DEFAULT_EFFECTS, bin
|
|
|
240
284
|
}, [active]);
|
|
241
285
|
useEffect(() => {
|
|
242
286
|
const canvas = canvasRef.current;
|
|
243
|
-
|
|
287
|
+
const surface = canvas?.parentElement;
|
|
288
|
+
if (!canvas || !surface)
|
|
244
289
|
return;
|
|
245
|
-
const
|
|
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
|
+
});
|
|
246
297
|
terminalRuntime.setViewInputPolicy(viewId, clientReadWriteRef.current);
|
|
247
298
|
let { cols, rows } = gridRef.current;
|
|
248
299
|
const observer = new ResizeObserver(([entry]) => {
|
|
249
|
-
if (!entry)
|
|
300
|
+
if (!entry || entry.contentRect.width <= 0 || entry.contentRect.height <= 0)
|
|
250
301
|
return;
|
|
251
|
-
|
|
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);
|
|
252
305
|
const nextCols = Math.max(2, Math.floor((entry.contentRect.width - ORIGIN_X * 2) / CELL_WIDTH));
|
|
253
306
|
const nextRows = Math.max(1, Math.floor((entry.contentRect.height - ORIGIN_Y * 2) / LINE_HEIGHT));
|
|
254
307
|
if (nextCols !== cols || nextRows !== rows) {
|
|
@@ -259,7 +312,7 @@ function TerminalSurfaceSession({ session, theme, effects = DEFAULT_EFFECTS, bin
|
|
|
259
312
|
terminalRuntime.resize(session.id, viewId, cols, rows);
|
|
260
313
|
}
|
|
261
314
|
});
|
|
262
|
-
observer.observe(
|
|
315
|
+
observer.observe(surface);
|
|
263
316
|
return () => {
|
|
264
317
|
observer.disconnect();
|
|
265
318
|
handle.dispose();
|
|
@@ -317,13 +370,20 @@ function TerminalSurfaceSession({ session, theme, effects = DEFAULT_EFFECTS, bin
|
|
|
317
370
|
useEffect(() => {
|
|
318
371
|
const syncFocus = () => {
|
|
319
372
|
const { cols, rows } = gridRef.current;
|
|
320
|
-
|
|
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;
|
|
321
380
|
};
|
|
322
381
|
const onWindowBlur = () => {
|
|
323
382
|
restoreInputFocusRef.current = restoreInputFocusRef.current || document.activeElement === inputRef.current;
|
|
324
383
|
releaseForwardedKeys();
|
|
325
384
|
const { cols, rows } = gridRef.current;
|
|
326
385
|
terminalRuntime.setFocused(session.handle, viewId, false, cols, rows);
|
|
386
|
+
focusedRef.current = false;
|
|
327
387
|
};
|
|
328
388
|
const onWindowFocus = () => {
|
|
329
389
|
if (active && restoreInputFocusRef.current)
|
|
@@ -479,6 +539,11 @@ function TerminalSurfaceSession({ session, theme, effects = DEFAULT_EFFECTS, bin
|
|
|
479
539
|
}, 40);
|
|
480
540
|
};
|
|
481
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
|
+
});
|
|
482
547
|
onActivate?.();
|
|
483
548
|
event.currentTarget.focus({ preventScroll: true });
|
|
484
549
|
if (links.begin(event)) {
|
|
@@ -621,7 +686,9 @@ function TerminalSurfaceSession({ session, theme, effects = DEFAULT_EFFECTS, bin
|
|
|
621
686
|
event.currentTarget.releasePointerCapture(event.pointerId);
|
|
622
687
|
revealScrollbar();
|
|
623
688
|
};
|
|
624
|
-
return (_jsxs("div", { className: "terminal-surface", children: [_jsx("canvas", { ref: canvasRef, "aria-label": `Terminal session ${session.id}
|
|
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: () => {
|
|
625
692
|
onActivate?.();
|
|
626
693
|
restoreInputFocusRef.current = true;
|
|
627
694
|
setInputFocused(true);
|
|
@@ -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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"}
|
|
@@ -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;
|
|
@@ -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;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;
|
|
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"}
|
|
@@ -12,6 +12,8 @@ export function appearanceDraftFromConfig(config) {
|
|
|
12
12
|
effects: config.renderer.shaderEffects?.filter(isGhostteaShaderEffect) ??
|
|
13
13
|
(config.renderer.postProcess === "better-crt" ? ["ghosttea:better-crt"] : []),
|
|
14
14
|
animation: config.renderer.customShaderAnimation ?? false,
|
|
15
|
+
lightAdaptation: config.renderer.lightAdaptation ?? "auto",
|
|
16
|
+
minimumContrast: config.renderer.minimumContrast ?? 1,
|
|
15
17
|
};
|
|
16
18
|
}
|
|
17
19
|
export function sameAppearanceDraft(left, right) {
|
|
@@ -19,6 +21,8 @@ export function sameAppearanceDraft(left, right) {
|
|
|
19
21
|
left.opacity === right.opacity &&
|
|
20
22
|
left.opacityCells === right.opacityCells &&
|
|
21
23
|
left.animation === right.animation &&
|
|
24
|
+
left.lightAdaptation === right.lightAdaptation &&
|
|
25
|
+
left.minimumContrast === right.minimumContrast &&
|
|
22
26
|
left.effects.length === right.effects.length &&
|
|
23
27
|
left.effects.every((effect, index) => effect === right.effects[index]));
|
|
24
28
|
}
|
|
@@ -40,9 +44,11 @@ export function AppearanceSettings({ config, onClose, onSave, configEditor, back
|
|
|
40
44
|
const [opacityCells, setOpacityCells] = useState(initialAppearance.opacityCells);
|
|
41
45
|
const [effects, setEffects] = useState(initialAppearance.effects);
|
|
42
46
|
const [animation, setAnimation] = useState(initialAppearance.animation);
|
|
47
|
+
const [lightAdaptation, setLightAdaptation] = useState(initialAppearance.lightAdaptation);
|
|
48
|
+
const [minimumContrast, setMinimumContrast] = useState(initialAppearance.minimumContrast);
|
|
43
49
|
const [saving, setSaving] = useState(false);
|
|
44
50
|
const [error, setError] = useState();
|
|
45
|
-
const appearanceDraft = useMemo(() => ({ themeName, opacity, opacityCells, effects, animation }), [animation, effects, opacity, opacityCells, themeName]);
|
|
51
|
+
const appearanceDraft = useMemo(() => ({ themeName, opacity, opacityCells, effects, animation, lightAdaptation, minimumContrast }), [animation, effects, lightAdaptation, minimumContrast, opacity, opacityCells, themeName]);
|
|
46
52
|
const appearanceDirty = !sameAppearanceDraft(appearanceDraft, appearanceBaseline);
|
|
47
53
|
const appearanceStale = appearanceDirty && observedConfig.revision !== appearanceBaselineRevision;
|
|
48
54
|
const selectedTheme = themeName ? GHOSTTY_COLOR_THEMES.find((theme) => theme.name === themeName) : undefined;
|
|
@@ -60,6 +66,8 @@ export function AppearanceSettings({ config, onClose, onSave, configEditor, back
|
|
|
60
66
|
setOpacityCells(next.opacityCells);
|
|
61
67
|
setEffects(next.effects);
|
|
62
68
|
setAnimation(next.animation);
|
|
69
|
+
setLightAdaptation(next.lightAdaptation);
|
|
70
|
+
setMinimumContrast(next.minimumContrast);
|
|
63
71
|
setAppearanceBaseline(next);
|
|
64
72
|
setAppearanceBaselineRevision(nextConfig.revision);
|
|
65
73
|
}, []);
|
|
@@ -139,6 +147,8 @@ export function AppearanceSettings({ config, onClose, onSave, configEditor, back
|
|
|
139
147
|
backgroundOpacityCells: opacityCells,
|
|
140
148
|
shaderEffects: effects,
|
|
141
149
|
shaderAnimation: animation,
|
|
150
|
+
lightAdaptation,
|
|
151
|
+
minimumContrast,
|
|
142
152
|
});
|
|
143
153
|
requestClose();
|
|
144
154
|
}
|
|
@@ -149,7 +159,7 @@ export function AppearanceSettings({ config, onClose, onSave, configEditor, back
|
|
|
149
159
|
setSaving(false);
|
|
150
160
|
}
|
|
151
161
|
};
|
|
152
|
-
return (_jsx("div", { className: "appearance-settings-backdrop", role: "presentation", onMouseDown: (event) => event.target === event.currentTarget && requestClose(), children: _jsxs("section", { className: "appearance-settings", role: "dialog", "aria-modal": "true", "aria-labelledby": "settings-title", children: [_jsxs("header", { children: [_jsxs("div", { children: [_jsx("h1", { id: "settings-title", children: "Settings" }), _jsx("p", { children: "Profile-wide terminal appearance and Ghostty-compatible configuration." })] }), _jsx("button", { type: "button", className: "appearance-close", onClick: requestClose, "aria-label": "Close settings", children: "\u00D7" })] }), _jsxs("div", { className: "settings-layout", children: [_jsxs("nav", { className: "settings-sidebar", "aria-label": "Settings sections", children: [onSave ? (_jsxs("button", { type: "button", className: section === "appearance" ? "is-selected" : "", "aria-current": section === "appearance" ? "page" : undefined, disabled: advancedDirty, title: advancedDirty ? "Save or revert the Advanced draft before switching sections" : undefined, onClick: () => selectSection("appearance"), children: [_jsx("span", { children: "Appearance" }), _jsx("small", { children: "Themes & shaders" })] })) : null, configEditor ? (_jsxs("button", { type: "button", className: section === "advanced" ? "is-selected" : "", "aria-current": section === "advanced" ? "page" : undefined, disabled: appearanceDirty, title: appearanceDirty ? "Apply or cancel Appearance changes before switching sections" : undefined, onClick: () => selectSection("advanced"), children: [_jsx("span", { children: "Advanced" }), _jsx("small", { children: "Ghostty config" })] })) : null, appearanceDirty ? (_jsx("p", { className: "settings-sidebar-note", children: "Apply or cancel Appearance edits to switch." })) : null, advancedDirty ? (_jsx("p", { className: "settings-sidebar-note", children: "Save or revert the Advanced draft to switch." })) : null] }), _jsxs("div", { className: "settings-content", children: [_jsxs("div", { className: `settings-page appearance-settings-page${section === "appearance" ? " is-active" : ""}`, children: [appearanceStale ? (_jsxs("div", { className: "config-conflict appearance-config-stale", role: "alert", children: [_jsxs("div", { children: [_jsx("strong", { children: "The configuration changed while Appearance had pending edits." }), _jsx("p", { children: "Choose whether to reload the current values or explicitly rebase your pending appearance." })] }), _jsxs("span", { children: [_jsx("button", { type: "button", onClick: () => resetAppearanceToConfig(observedConfig), children: "Reload current values" }), _jsx("button", { type: "button", onClick: acknowledgeLatestAppearanceBase, children: "Keep my pending edits" })] })] })) : null, _jsxs("div", { className: "appearance-settings-grid", children: [_jsxs("section", { className: "appearance-panel", children: [_jsxs("h2", { children: ["Color theme ", _jsx("span", { children: GHOSTTY_COLOR_THEMES.length })] }), _jsx("input", { className: "appearance-search", value: query, onChange: (event) => setQuery(event.currentTarget.value), placeholder: "Search Ghostty themes", "aria-label": "Search Ghostty themes", autoFocus: section === "appearance" }), _jsxs("div", { className: "appearance-theme-list", role: "listbox", "aria-label": "Color themes", children: [!matchedTheme ? (_jsx(ThemeChoice, { theme: currentTheme, selected: themeName === null, onSelect: () => setThemeName(null) })) : null, selectedTheme && !filteredThemes.some((theme) => theme.name === selectedTheme.name) ? (_jsx(ThemeChoice, { theme: selectedTheme, selected: true, onSelect: () => setThemeName(selectedTheme.name) })) : null, filteredThemes.map((theme) => (_jsx(ThemeChoice, { theme: theme, selected: theme.name === selectedTheme?.name, onSelect: () => setThemeName(theme.name) }, theme.name)))] })] }), _jsxs("section", { className: "appearance-panel appearance-details", children: [_jsx("h2", { children: "Preview" }), _jsxs("div", { className: "appearance-preview", style: { color: previewTheme.foreground, background: previewTheme.background }, children: [_jsx("div", { className: "appearance-preview-dots", children: previewTheme.palette.slice(1, 7).map((color, index) => (_jsx("i", { style: { background: color } }, `${color}-${index}`))) }), _jsxs("code", { children: [_jsx("span", { style: { color: previewTheme.palette[2] }, children: "ghosttea" }), " ", _jsx("span", { style: { color: previewTheme.palette[4] }, children: "~/projects" }), " $ cargo test", _jsx("br", {}), "All systems steeping."] }), _jsx("i", { className: "appearance-preview-cursor", style: { color: previewTheme.cursorText, background: previewTheme.cursor }, children: "_" })] }), _jsxs("label", { className: "appearance-range", children: [_jsxs("span", { children: ["Background opacity ", _jsxs("output", { children: [Math.round(opacity * 100), "%"] })] }), _jsx("input", { type: "range", min: "0", max: "1", step: "0.01", value: opacity, onChange: (event) => setOpacity(event.currentTarget.valueAsNumber) })] }), _jsxs("label", { className: "appearance-check", children: [_jsx("input", { type: "checkbox", checked: opacityCells, onChange: (event) => setOpacityCells(event.currentTarget.checked) }), _jsx("span", { children: "Apply opacity to explicit cell backgrounds" })] }), backdropBlur ? (_jsx(BackdropBlurControl, { bridge: backdropBlur })) : (_jsx("p", { className: "appearance-help", children: "Desktop transparency and background blur depend on your operating system and app host." })), _jsx("h2", { children: "Shader stack" }), _jsx("p", { className: "appearance-help", children: "Effects run top-to-bottom. Animated effects repaint while this window is focused." }), _jsx("div", { className: "appearance-shader-list", children: [...GHOSTTEA_SHADER_OPTIONS]
|
|
162
|
+
return (_jsx("div", { className: "appearance-settings-backdrop", role: "presentation", onMouseDown: (event) => event.target === event.currentTarget && requestClose(), children: _jsxs("section", { className: "appearance-settings", role: "dialog", "aria-modal": "true", "aria-labelledby": "settings-title", children: [_jsxs("header", { children: [_jsxs("div", { children: [_jsx("h1", { id: "settings-title", children: "Settings" }), _jsx("p", { children: "Profile-wide terminal appearance and Ghostty-compatible configuration." })] }), _jsx("button", { type: "button", className: "appearance-close", onClick: requestClose, "aria-label": "Close settings", children: "\u00D7" })] }), _jsxs("div", { className: "settings-layout", children: [_jsxs("nav", { className: "settings-sidebar", "aria-label": "Settings sections", children: [onSave ? (_jsxs("button", { type: "button", className: section === "appearance" ? "is-selected" : "", "aria-current": section === "appearance" ? "page" : undefined, disabled: advancedDirty, title: advancedDirty ? "Save or revert the Advanced draft before switching sections" : undefined, onClick: () => selectSection("appearance"), children: [_jsx("span", { children: "Appearance" }), _jsx("small", { children: "Themes & shaders" })] })) : null, configEditor ? (_jsxs("button", { type: "button", className: section === "advanced" ? "is-selected" : "", "aria-current": section === "advanced" ? "page" : undefined, disabled: appearanceDirty, title: appearanceDirty ? "Apply or cancel Appearance changes before switching sections" : undefined, onClick: () => selectSection("advanced"), children: [_jsx("span", { children: "Advanced" }), _jsx("small", { children: "Ghostty config" })] })) : null, appearanceDirty ? (_jsx("p", { className: "settings-sidebar-note", children: "Apply or cancel Appearance edits to switch." })) : null, advancedDirty ? (_jsx("p", { className: "settings-sidebar-note", children: "Save or revert the Advanced draft to switch." })) : null] }), _jsxs("div", { className: "settings-content", children: [_jsxs("div", { className: `settings-page appearance-settings-page${section === "appearance" ? " is-active" : ""}`, children: [appearanceStale ? (_jsxs("div", { className: "config-conflict appearance-config-stale", role: "alert", children: [_jsxs("div", { children: [_jsx("strong", { children: "The configuration changed while Appearance had pending edits." }), _jsx("p", { children: "Choose whether to reload the current values or explicitly rebase your pending appearance." })] }), _jsxs("span", { children: [_jsx("button", { type: "button", onClick: () => resetAppearanceToConfig(observedConfig), children: "Reload current values" }), _jsx("button", { type: "button", onClick: acknowledgeLatestAppearanceBase, children: "Keep my pending edits" })] })] })) : null, _jsxs("div", { className: "appearance-settings-grid", children: [_jsxs("section", { className: "appearance-panel", children: [_jsxs("h2", { children: ["Color theme ", _jsx("span", { children: GHOSTTY_COLOR_THEMES.length })] }), _jsx("input", { className: "appearance-search", value: query, onChange: (event) => setQuery(event.currentTarget.value), placeholder: "Search Ghostty themes", "aria-label": "Search Ghostty themes", autoFocus: section === "appearance" }), _jsxs("div", { className: "appearance-theme-list", role: "listbox", "aria-label": "Color themes", children: [!matchedTheme ? (_jsx(ThemeChoice, { theme: currentTheme, selected: themeName === null, onSelect: () => setThemeName(null) })) : null, selectedTheme && !filteredThemes.some((theme) => theme.name === selectedTheme.name) ? (_jsx(ThemeChoice, { theme: selectedTheme, selected: true, onSelect: () => setThemeName(selectedTheme.name) })) : null, filteredThemes.map((theme) => (_jsx(ThemeChoice, { theme: theme, selected: theme.name === selectedTheme?.name, onSelect: () => setThemeName(theme.name) }, theme.name)))] })] }), _jsxs("section", { className: "appearance-panel appearance-details", children: [_jsx("h2", { children: "Preview" }), _jsxs("div", { className: "appearance-preview", style: { color: previewTheme.foreground, background: previewTheme.background }, children: [_jsx("div", { className: "appearance-preview-dots", children: previewTheme.palette.slice(1, 7).map((color, index) => (_jsx("i", { style: { background: color } }, `${color}-${index}`))) }), _jsxs("code", { children: [_jsx("span", { style: { color: previewTheme.palette[2] }, children: "ghosttea" }), " ", _jsx("span", { style: { color: previewTheme.palette[4] }, children: "~/projects" }), " $ cargo test", _jsx("br", {}), "All systems steeping."] }), _jsx("i", { className: "appearance-preview-cursor", style: { color: previewTheme.cursorText, background: previewTheme.cursor }, children: "_" })] }), _jsxs("label", { className: "appearance-range", children: [_jsxs("span", { children: ["Background opacity ", _jsxs("output", { children: [Math.round(opacity * 100), "%"] })] }), _jsx("input", { type: "range", min: "0", max: "1", step: "0.01", value: opacity, onChange: (event) => setOpacity(event.currentTarget.valueAsNumber) })] }), _jsxs("label", { className: "appearance-check", children: [_jsx("input", { type: "checkbox", checked: opacityCells, onChange: (event) => setOpacityCells(event.currentTarget.checked) }), _jsx("span", { children: "Apply opacity to explicit cell backgrounds" })] }), backdropBlur ? (_jsx(BackdropBlurControl, { bridge: backdropBlur })) : (_jsx("p", { className: "appearance-help", children: "Desktop transparency and background blur depend on your operating system and app host." })), _jsx("h2", { children: "Readability" }), _jsxs("label", { className: "appearance-check", children: [_jsx("input", { type: "checkbox", checked: lightAdaptation === "auto", onChange: (event) => setLightAdaptation(event.currentTarget.checked ? "auto" : "off") }), _jsx("span", { children: "Restyle apps that paint their own dark background when a light theme is active" })] }), _jsxs("label", { className: "appearance-range", children: [_jsxs("span", { children: ["Minimum text contrast ", _jsx("output", { children: minimumContrast > 1 ? `${minimumContrast}:1` : "Off" })] }), _jsx("input", { type: "range", min: "1", max: Math.max(7, minimumContrast), step: "0.5", value: minimumContrast, onChange: (event) => setMinimumContrast(event.currentTarget.valueAsNumber) })] }), _jsx("p", { className: "appearance-help", children: "Text below this ratio against its background is lightened or darkened, keeping its hue. 4.5:1 is the WCAG AA level for body text." }), _jsx("h2", { children: "Shader stack" }), _jsx("p", { className: "appearance-help", children: "Effects run top-to-bottom. Animated effects repaint while this window is focused." }), _jsx("div", { className: "appearance-shader-list", children: [...GHOSTTEA_SHADER_OPTIONS]
|
|
153
163
|
.sort((left, right) => {
|
|
154
164
|
const leftIndex = effects.indexOf(left.id);
|
|
155
165
|
const rightIndex = effects.indexOf(right.id);
|