v0.26.1 75cd777

dumber.d.ts RawHistoryFolder

1/**
2 * Global type declarations for Dumber browser WebKit bridge
3 */
4
5// ═══════════════════════════════════════════════════════════════════════════════
6// WEBKIT BRIDGE TYPES
7// ═══════════════════════════════════════════════════════════════════════════════
8
9interface DumberBridge {
10  postMessage: (message: unknown) => void;
11}
12
13interface DumberWebKit {
14  messageHandlers?: {
15    dumber?: DumberBridge;
16  };
17}
18
19// ═══════════════════════════════════════════════════════════════════════════════
20// VIEW TRANSITION API (not yet in TypeScript DOM lib)
21// ═══════════════════════════════════════════════════════════════════════════════
22
23interface ViewTransition {
24  finished: Promise<void>;
25  ready: Promise<void>;
26  updateCallbackDone: Promise<void>;
27}
28
29// ═══════════════════════════════════════════════════════════════════════════════
30// THEME TYPES
31// ═══════════════════════════════════════════════════════════════════════════════
32
33type ThemeMode = 'light' | 'dark';
34
35interface ColorSchemeManager {
36  setUserPreference?: (theme: ThemeMode) => void;
37}
38
39// ═══════════════════════════════════════════════════════════════════════════════
40// HOMEPAGE MESSAGING TYPES
41// ═══════════════════════════════════════════════════════════════════════════════
42
43/** Response from Go backend for homepage requests */
44interface HomepageResponse {
45  requestId: string;
46  success: boolean;
47  data?: unknown;
48  error?: string;
49}
50
51/** Error response format (can be string for legacy or object) */
52type HomepageErrorResponse = string | { requestId?: string; error?: string };
53
54/** Callback type for homepage responses */
55type HomepageResponseCallback = (response: HomepageResponse) => void;
56
57/** Callback type for legacy data responses (can receive raw data or Response object) */
58type HomepageLegacyCallback = (dataOrResponse: unknown) => void;
59
60/** Callback type for error responses */
61type HomepageErrorCallback = (errorOrResponse: HomepageErrorResponse) => void;
62
63// ═══════════════════════════════════════════════════════════════════════════════
64// GLOBAL DECLARATIONS
65// ═══════════════════════════════════════════════════════════════════════════════
66
67declare global {
68  // Re-export bridge type for use in other modules
69  type DumberBridge = {
70    postMessage: (message: unknown) => void;
71  };
72  interface Window {
73    // ─────────────────────────────────────────────────────────────────────────
74    // Core WebKit Bridge
75    // ─────────────────────────────────────────────────────────────────────────
76    /** WebView ID assigned by the browser backend */
77    __dumber_webview_id?: number;
78    /** WebKit message handlers for native bridge */
79    webkit?: DumberWebKit;
80
81    // ─────────────────────────────────────────────────────────────────────────
82    // Config Page Callbacks
83    // ─────────────────────────────────────────────────────────────────────────
84    /** Callback invoked when config save succeeds */
85    __dumber_config_saved?: (resp?: unknown) => void;
86    /** Callback invoked when config save fails */
87    __dumber_config_error?: (msg: unknown) => void;
88
89    // ─────────────────────────────────────────────────────────────────────────
90    // Keybindings Callbacks
91    // ─────────────────────────────────────────────────────────────────────────
92    /** Callback invoked when keybindings are loaded */
93    __dumber_keybindings_loaded?: (resp?: unknown) => void;
94    /** Callback invoked when keybindings load fails */
95    __dumber_keybindings_error?: (msg: unknown) => void;
96    /** Callback invoked when a keybinding is set */
97    __dumber_keybinding_set?: (resp?: unknown) => void;
98    /** Callback invoked when keybinding set fails */
99    __dumber_keybinding_set_error?: (msg: unknown) => void;
100    /** Callback invoked when a keybinding is reset */
101    __dumber_keybinding_reset?: (resp?: unknown) => void;
102    /** Callback invoked when keybinding reset fails */
103    __dumber_keybinding_reset_error?: (msg: unknown) => void;
104    /** Callback invoked when all keybindings are reset */
105    __dumber_keybindings_reset_all?: (resp?: unknown) => void;
106    /** Callback invoked when reset all keybindings fails */
107    __dumber_keybindings_reset_all_error?: (msg: unknown) => void;
108
109    // ─────────────────────────────────────────────────────────────────────────
110    // Homepage Callbacks
111    // ─────────────────────────────────────────────────────────────────────────
112    /** Generic response handler for homepage requests */
113    __dumber_homepage_response?: HomepageResponseCallback;
114    /** History timeline data callback */
115    __dumber_history_timeline?: HomepageLegacyCallback;
116    /** Folders data callback */
117    __dumber_folders?: HomepageLegacyCallback;
118    /** Tags data callback */
119    __dumber_tags?: HomepageLegacyCallback;
120    /** Favorites data callback */
121    __dumber_favorites?: HomepageLegacyCallback;
122    /** Analytics data callback */
123    __dumber_analytics?: HomepageLegacyCallback;
124    /** Domain stats data callback */
125    __dumber_domain_stats?: HomepageLegacyCallback;
126    /** History search results callback */
127    __dumber_history_search_results?: HomepageLegacyCallback;
128    /** History deleted callback */
129    __dumber_history_deleted?: HomepageLegacyCallback;
130    /** History cleared callback */
131    __dumber_history_cleared?: HomepageLegacyCallback;
132    /** Error callback for homepage requests */
133    __dumber_error?: HomepageErrorCallback;
134
135    // ─────────────────────────────────────────────────────────────────────────
136    // Theme Management
137    // ─────────────────────────────────────────────────────────────────────────
138    /** Color scheme manager for theme switching */
139    __dumber_color_scheme_manager?: ColorSchemeManager;
140    /** Legacy theme setter */
141    __dumber_setTheme?: (theme: ThemeMode) => void;
142  }
143
144  interface Document {
145    /** View Transition API */
146    startViewTransition?: (callback: () => void | Promise<void>) => ViewTransition;
147  }
148}
149
150export {};

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 8

Tags 42

↑↓ moveenter openesc close