mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-17 07:18:04 +08:00
* Migrate Specta to Tsify to auto-generate messages.ts, working except colors and widgets * Adopt the generated FillColor/Color/GradientStops * Fix widget typing * Separate WidgetGroup enum variants into wrapper structs * Small rename * Simplify widgets further * Clean up message type references * Switch type imports to the auto-generated file * Remove lowercase serde rename * Fix FillChoice deserialization * Fix small regression from #3837 * Improve type safety * Make WidgetSpan type-safe * More cleanup and type safety * More type safety * More type safety * Get the rest to type-check without errors; improve widget builder macro to have optional icons; improve Svelte 5 configs * Cargo fmt * Fix imports * Update outdated readme info * Fix lint command rename references * Fix typos * One more typos fix * Remove unnecessary dep: prefix from the edited Cargo.toml files * Remove excess parts from Cargo.toml * Fix compiling on desktop * Revert "Remove excess parts from Cargo.toml" This reverts commit 6b711117b3a5d5d8a3ee20f36a43bc74930b7c82. * Update dev docs with simpler, more accurate instructions
48 lines
1.5 KiB
TypeScript
48 lines
1.5 KiB
TypeScript
/* eslint-disable @typescript-eslint/consistent-type-definitions */
|
|
|
|
// Graphite's custom properties added to the global `window` object
|
|
interface Window {
|
|
imageCanvases: Record<string, HTMLCanvasElement>;
|
|
receiveNativeMessage?: (buffer: ArrayBuffer) => void;
|
|
}
|
|
|
|
// Graphite's custom "pointerlockmove" event dispatched by input.ts for pointer lock in the CEF desktop app
|
|
interface WindowEventMap {
|
|
pointerlockmove: CustomEvent<{ x: number; y: number }>;
|
|
}
|
|
|
|
// Experimental Keyboard API: https://developer.mozilla.org/en-US/docs/Web/API/Keyboard
|
|
interface Navigator {
|
|
keyboard?: Keyboard;
|
|
}
|
|
interface Keyboard {
|
|
lock(keyCodes?: string[]): Promise<void>;
|
|
unlock(): void;
|
|
getLayoutMap(): Promise<KeyboardLayoutMap>;
|
|
}
|
|
interface KeyboardLayoutMap {
|
|
entries(): IterableIterator<[string, string]>;
|
|
get(key: string): string | undefined;
|
|
has(key: string): boolean;
|
|
readonly size: number;
|
|
}
|
|
|
|
// Experimental EyeDropper API: https://developer.mozilla.org/en-US/docs/Web/API/EyeDropper
|
|
interface Window {
|
|
EyeDropper?: typeof EyeDropper;
|
|
}
|
|
declare class EyeDropper {
|
|
constructor();
|
|
open(options?: { signal?: AbortSignal }): Promise<{ sRGBHex: string }>;
|
|
}
|
|
|
|
// Experimental "clipboard-read" Permission: https://developer.mozilla.org/en-US/docs/Web/API/Permissions
|
|
interface Permissions {
|
|
query(permissionDesc: { name: "clipboard-read" }): Promise<PermissionStatus>;
|
|
}
|
|
|
|
// Non-standard Stack Trace Limit API: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/stackTraceLimit
|
|
interface ErrorConstructor {
|
|
stackTraceLimit?: number;
|
|
}
|