@dxos/keyboard 0.8.4-main.406dc2a → 0.8.4-main.59c2e9b
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/dist/lib/browser/index.mjs +20 -37
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +20 -37
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/types/src/keyboard.d.ts +3 -2
- package/dist/types/src/keyboard.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +13 -9
- package/src/keyboard.ts +4 -3
package/package.json
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/keyboard",
|
|
3
|
-
"version": "0.8.4-main.
|
|
3
|
+
"version": "0.8.4-main.59c2e9b",
|
|
4
4
|
"description": "Keyboard bindings",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/dxos/dxos"
|
|
10
|
+
},
|
|
7
11
|
"license": "MIT",
|
|
8
12
|
"author": "DXOS.org",
|
|
9
13
|
"sideEffects": true,
|
|
@@ -25,16 +29,16 @@
|
|
|
25
29
|
"src"
|
|
26
30
|
],
|
|
27
31
|
"dependencies": {
|
|
28
|
-
"@dxos/invariant": "0.8.4-main.
|
|
29
|
-
"@dxos/node-std": "0.8.4-main.
|
|
30
|
-
"@dxos/util": "0.8.4-main.
|
|
32
|
+
"@dxos/invariant": "0.8.4-main.59c2e9b",
|
|
33
|
+
"@dxos/node-std": "0.8.4-main.59c2e9b",
|
|
34
|
+
"@dxos/util": "0.8.4-main.59c2e9b"
|
|
31
35
|
},
|
|
32
36
|
"devDependencies": {
|
|
33
|
-
"react": "~19.2.
|
|
34
|
-
"react-dom": "~19.2.
|
|
35
|
-
"@dxos/react-ui
|
|
36
|
-
"@dxos/
|
|
37
|
-
"@dxos/
|
|
37
|
+
"react": "~19.2.3",
|
|
38
|
+
"react-dom": "~19.2.3",
|
|
39
|
+
"@dxos/react-ui": "0.8.4-main.59c2e9b",
|
|
40
|
+
"@dxos/storybook-utils": "0.8.4-main.59c2e9b",
|
|
41
|
+
"@dxos/ui-theme": "0.8.4-main.59c2e9b"
|
|
38
42
|
},
|
|
39
43
|
"publishConfig": {
|
|
40
44
|
"access": "public"
|
package/src/keyboard.ts
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import { invariant } from '@dxos/invariant';
|
|
6
|
+
import { type MaybePromise } from '@dxos/util';
|
|
6
7
|
|
|
7
8
|
// TODO(burdon): Replace with hotkeys-js, react-hotkeys, and react-hotkeys-hook.
|
|
8
9
|
|
|
@@ -11,7 +12,7 @@ export type KeyHandler = (props: {
|
|
|
11
12
|
shortcut: string;
|
|
12
13
|
data?: any;
|
|
13
14
|
event: KeyboardEvent;
|
|
14
|
-
}) => boolean | void
|
|
15
|
+
}) => MaybePromise<boolean | void>;
|
|
15
16
|
|
|
16
17
|
export type KeyBinding = {
|
|
17
18
|
shortcut: string;
|
|
@@ -113,7 +114,7 @@ export class Keyboard {
|
|
|
113
114
|
return Array.from(bindings.values());
|
|
114
115
|
}
|
|
115
116
|
|
|
116
|
-
handleKeyDown(event: KeyboardEvent): void {
|
|
117
|
+
async handleKeyDown(event: KeyboardEvent): Promise<void> {
|
|
117
118
|
const { altKey, ctrlKey, metaKey, shiftKey, key } = event;
|
|
118
119
|
|
|
119
120
|
if (key !== 'Alt' && key !== 'Control' && key !== 'Meta' && key !== 'Shift') {
|
|
@@ -133,7 +134,7 @@ export class Keyboard {
|
|
|
133
134
|
if (this._path.startsWith(path)) {
|
|
134
135
|
const { data, handler, disableInput } = this.getContext(path).get(str) ?? {};
|
|
135
136
|
if (handler && (!isInput || !disableInput)) {
|
|
136
|
-
const result = handler({ context: path, shortcut: str, data, event });
|
|
137
|
+
const result = await handler({ context: path, shortcut: str, data, event });
|
|
137
138
|
if (result !== false) {
|
|
138
139
|
// TODO(burdon): This doesn't prevent actions in markdown editor.
|
|
139
140
|
// Reference: https://codemirror.net/docs/ref/#view.KeyBinding
|