@keybindy/react 1.0.1 → 1.0.3
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/Keybindy.d.ts +1 -1
- package/dist/Keybindy.js +1 -1
- package/dist/index.d.ts +30 -45
- package/dist/useKeybindy.d.ts +30 -44
- package/dist/useKeybindy.js +5 -6
- package/package.json +5 -4
package/dist/Keybindy.d.ts
CHANGED
|
@@ -26,7 +26,7 @@ type KeybindyProps = {
|
|
|
26
26
|
* The scope under which the shortcuts should be active.
|
|
27
27
|
* This allows managing different contexts for shortcuts.
|
|
28
28
|
*/
|
|
29
|
-
scope
|
|
29
|
+
scope?: 'global' | string;
|
|
30
30
|
/**
|
|
31
31
|
* Array of shortcut definitions to register for this scope.
|
|
32
32
|
*/
|
package/dist/Keybindy.js
CHANGED
|
@@ -35,7 +35,7 @@ import { useKeybindy } from './useKeybindy.js';
|
|
|
35
35
|
*
|
|
36
36
|
* @returns {JSX.Element} The rendered component with registered shortcuts within the provided scope.
|
|
37
37
|
*/
|
|
38
|
-
const Keybindy = ({ scope, shortcuts = [], children, disabled, onShortcutFired, logs = false, }) => {
|
|
38
|
+
const Keybindy = ({ scope = 'global', shortcuts = [], children, disabled, onShortcutFired, logs = false, }) => {
|
|
39
39
|
const { register, unregister, manager, pushScope, popScope, getScopes, setScope } = useKeybindy({
|
|
40
40
|
onShortcutFired,
|
|
41
41
|
logs,
|
package/dist/index.d.ts
CHANGED
|
@@ -29,7 +29,7 @@ type KeybindyProps = {
|
|
|
29
29
|
* The scope under which the shortcuts should be active.
|
|
30
30
|
* This allows managing different contexts for shortcuts.
|
|
31
31
|
*/
|
|
32
|
-
scope
|
|
32
|
+
scope?: 'global' | string;
|
|
33
33
|
/**
|
|
34
34
|
* Array of shortcut definitions to register for this scope.
|
|
35
35
|
*/
|
|
@@ -143,6 +143,33 @@ interface ShortcutLabelProps extends React.DetailedHTMLProps<React.HTMLAttribute
|
|
|
143
143
|
*/
|
|
144
144
|
declare const ShortcutLabel: ({ keys, renderKey, style, ...props }: ShortcutLabelProps) => react_jsx_runtime.JSX.Element;
|
|
145
145
|
|
|
146
|
+
type UseKeybindyReturn = {
|
|
147
|
+
register: (keys: Keys[] | Keys[][], handler: ShortcutHandler, options?: ShortcutOptions) => void;
|
|
148
|
+
unregister: (keys: Keys[], scope?: string) => void;
|
|
149
|
+
enable: (keys: Keys[], scope?: string) => void;
|
|
150
|
+
disable: (keys: Keys[], scope?: string) => void;
|
|
151
|
+
toggle: (keys: Keys[], scope?: string) => void;
|
|
152
|
+
setScope: (scope: string) => void;
|
|
153
|
+
getCheatSheet: (scope?: string) => {
|
|
154
|
+
keys: string[];
|
|
155
|
+
}[] | undefined;
|
|
156
|
+
destroy: () => void;
|
|
157
|
+
getScopeInfo: (scope?: string) => any;
|
|
158
|
+
getActiveScope: () => string;
|
|
159
|
+
popScope: () => void;
|
|
160
|
+
pushScope: (scope: string) => void;
|
|
161
|
+
resetScope: () => void;
|
|
162
|
+
getScopes: () => string[];
|
|
163
|
+
isScopeActive: (scope: string) => boolean | undefined;
|
|
164
|
+
onTyping: (callback: (payload: {
|
|
165
|
+
key: string;
|
|
166
|
+
event: KeyboardEvent;
|
|
167
|
+
}) => void) => void;
|
|
168
|
+
enableAll: (scope?: string) => void;
|
|
169
|
+
clear: () => void;
|
|
170
|
+
disableAll: (scope?: string) => void;
|
|
171
|
+
manager: ShortcutManager;
|
|
172
|
+
};
|
|
146
173
|
/**
|
|
147
174
|
* React hook to manage keyboard shortcuts using a shared instance of `ShortcutManager`.
|
|
148
175
|
* Automatically cleans up shortcuts registered by the component on unmount.
|
|
@@ -167,51 +194,9 @@ declare const ShortcutLabel: ({ keys, renderKey, style, ...props }: ShortcutLabe
|
|
|
167
194
|
* setScope('editor');
|
|
168
195
|
* }, []);
|
|
169
196
|
*/
|
|
170
|
-
declare
|
|
197
|
+
declare const useKeybindy: ({ logs, onShortcutFired, }?: {
|
|
171
198
|
logs?: boolean;
|
|
172
199
|
onShortcutFired?: (info: Shortcut) => void;
|
|
173
|
-
})
|
|
174
|
-
register: (keys: Keys[] | Keys[][], handler: ShortcutHandler, options?: ShortcutOptions) => void;
|
|
175
|
-
unregister: (keys: Keys[], scope?: string) => void;
|
|
176
|
-
enable: (keys: Keys[], scope?: string) => void;
|
|
177
|
-
disable: (keys: Keys[], scope?: string) => void;
|
|
178
|
-
toggle: (keys: Keys[], scope?: string) => void;
|
|
179
|
-
setScope: (scope: string) => void;
|
|
180
|
-
getCheatSheet: (scope?: string) => {
|
|
181
|
-
keys: string[];
|
|
182
|
-
}[] | undefined;
|
|
183
|
-
destroy: () => void;
|
|
184
|
-
getScopeInfo: (scope?: string) => {
|
|
185
|
-
shortcuts: {
|
|
186
|
-
keys: string[];
|
|
187
|
-
id: string;
|
|
188
|
-
enabled: boolean;
|
|
189
|
-
data?: Record<string, string>;
|
|
190
|
-
}[];
|
|
191
|
-
isActive?: boolean;
|
|
192
|
-
} | Record<string, {
|
|
193
|
-
shortcuts: {
|
|
194
|
-
keys: string[];
|
|
195
|
-
id: string;
|
|
196
|
-
enabled: boolean;
|
|
197
|
-
data?: Record<string, string>;
|
|
198
|
-
}[];
|
|
199
|
-
isActive?: boolean;
|
|
200
|
-
}> | undefined;
|
|
201
|
-
getActiveScope: () => string | undefined;
|
|
202
|
-
popScope: () => void;
|
|
203
|
-
pushScope: (scope: string) => void;
|
|
204
|
-
resetScope: () => void;
|
|
205
|
-
getScopes: () => string[] | undefined;
|
|
206
|
-
isScopeActive: (scope: string) => boolean | undefined;
|
|
207
|
-
onTyping: (callback: (payload: {
|
|
208
|
-
key: string;
|
|
209
|
-
event: KeyboardEvent;
|
|
210
|
-
}) => void) => void;
|
|
211
|
-
enableAll: (scope?: string) => void;
|
|
212
|
-
clear: () => void;
|
|
213
|
-
disableAll: (scope?: string) => void;
|
|
214
|
-
manager: ShortcutManager;
|
|
215
|
-
};
|
|
200
|
+
}) => UseKeybindyReturn;
|
|
216
201
|
|
|
217
202
|
export { Keybindy, ShortcutLabel, useKeybindy };
|
package/dist/useKeybindy.d.ts
CHANGED
|
@@ -1,5 +1,32 @@
|
|
|
1
1
|
import ShortcutManager from '@keybindy/core';
|
|
2
2
|
import type { Keys, Shortcut, ShortcutHandler, ShortcutOptions } from '@keybindy/core';
|
|
3
|
+
type UseKeybindyReturn = {
|
|
4
|
+
register: (keys: Keys[] | Keys[][], handler: ShortcutHandler, options?: ShortcutOptions) => void;
|
|
5
|
+
unregister: (keys: Keys[], scope?: string) => void;
|
|
6
|
+
enable: (keys: Keys[], scope?: string) => void;
|
|
7
|
+
disable: (keys: Keys[], scope?: string) => void;
|
|
8
|
+
toggle: (keys: Keys[], scope?: string) => void;
|
|
9
|
+
setScope: (scope: string) => void;
|
|
10
|
+
getCheatSheet: (scope?: string) => {
|
|
11
|
+
keys: string[];
|
|
12
|
+
}[] | undefined;
|
|
13
|
+
destroy: () => void;
|
|
14
|
+
getScopeInfo: (scope?: string) => any;
|
|
15
|
+
getActiveScope: () => string;
|
|
16
|
+
popScope: () => void;
|
|
17
|
+
pushScope: (scope: string) => void;
|
|
18
|
+
resetScope: () => void;
|
|
19
|
+
getScopes: () => string[];
|
|
20
|
+
isScopeActive: (scope: string) => boolean | undefined;
|
|
21
|
+
onTyping: (callback: (payload: {
|
|
22
|
+
key: string;
|
|
23
|
+
event: KeyboardEvent;
|
|
24
|
+
}) => void) => void;
|
|
25
|
+
enableAll: (scope?: string) => void;
|
|
26
|
+
clear: () => void;
|
|
27
|
+
disableAll: (scope?: string) => void;
|
|
28
|
+
manager: ShortcutManager;
|
|
29
|
+
};
|
|
3
30
|
/**
|
|
4
31
|
* React hook to manage keyboard shortcuts using a shared instance of `ShortcutManager`.
|
|
5
32
|
* Automatically cleans up shortcuts registered by the component on unmount.
|
|
@@ -24,49 +51,8 @@ import type { Keys, Shortcut, ShortcutHandler, ShortcutOptions } from '@keybindy
|
|
|
24
51
|
* setScope('editor');
|
|
25
52
|
* }, []);
|
|
26
53
|
*/
|
|
27
|
-
export declare
|
|
54
|
+
export declare const useKeybindy: ({ logs, onShortcutFired, }?: {
|
|
28
55
|
logs?: boolean;
|
|
29
56
|
onShortcutFired?: (info: Shortcut) => void;
|
|
30
|
-
})
|
|
31
|
-
|
|
32
|
-
unregister: (keys: Keys[], scope?: string) => void;
|
|
33
|
-
enable: (keys: Keys[], scope?: string) => void;
|
|
34
|
-
disable: (keys: Keys[], scope?: string) => void;
|
|
35
|
-
toggle: (keys: Keys[], scope?: string) => void;
|
|
36
|
-
setScope: (scope: string) => void;
|
|
37
|
-
getCheatSheet: (scope?: string) => {
|
|
38
|
-
keys: string[];
|
|
39
|
-
}[] | undefined;
|
|
40
|
-
destroy: () => void;
|
|
41
|
-
getScopeInfo: (scope?: string) => {
|
|
42
|
-
shortcuts: {
|
|
43
|
-
keys: string[];
|
|
44
|
-
id: string;
|
|
45
|
-
enabled: boolean;
|
|
46
|
-
data?: Record<string, string>;
|
|
47
|
-
}[];
|
|
48
|
-
isActive?: boolean;
|
|
49
|
-
} | Record<string, {
|
|
50
|
-
shortcuts: {
|
|
51
|
-
keys: string[];
|
|
52
|
-
id: string;
|
|
53
|
-
enabled: boolean;
|
|
54
|
-
data?: Record<string, string>;
|
|
55
|
-
}[];
|
|
56
|
-
isActive?: boolean;
|
|
57
|
-
}> | undefined;
|
|
58
|
-
getActiveScope: () => string | undefined;
|
|
59
|
-
popScope: () => void;
|
|
60
|
-
pushScope: (scope: string) => void;
|
|
61
|
-
resetScope: () => void;
|
|
62
|
-
getScopes: () => string[] | undefined;
|
|
63
|
-
isScopeActive: (scope: string) => boolean | undefined;
|
|
64
|
-
onTyping: (callback: (payload: {
|
|
65
|
-
key: string;
|
|
66
|
-
event: KeyboardEvent;
|
|
67
|
-
}) => void) => void;
|
|
68
|
-
enableAll: (scope?: string) => void;
|
|
69
|
-
clear: () => void;
|
|
70
|
-
disableAll: (scope?: string) => void;
|
|
71
|
-
manager: ShortcutManager;
|
|
72
|
-
};
|
|
57
|
+
}) => UseKeybindyReturn;
|
|
58
|
+
export {};
|
package/dist/useKeybindy.js
CHANGED
|
@@ -26,15 +26,14 @@ let sharedInstance = null;
|
|
|
26
26
|
* setScope('editor');
|
|
27
27
|
* }, []);
|
|
28
28
|
*/
|
|
29
|
-
|
|
29
|
+
const useKeybindy = ({ logs = false, onShortcutFired, } = {}) => {
|
|
30
30
|
const managerRef = React.useRef(null);
|
|
31
31
|
const registeredIds = React.useRef(new Set());
|
|
32
32
|
if (!sharedInstance) {
|
|
33
|
-
sharedInstance = new ShortcutManager(onShortcutFired);
|
|
33
|
+
sharedInstance = new ShortcutManager({ onShortcutFired, silent: !logs });
|
|
34
34
|
}
|
|
35
35
|
if (!managerRef.current) {
|
|
36
36
|
managerRef.current = sharedInstance;
|
|
37
|
-
managerRef.current.start();
|
|
38
37
|
}
|
|
39
38
|
const log = (...args) => {
|
|
40
39
|
if (logs)
|
|
@@ -132,7 +131,7 @@ function useKeybindy({ logs = false, onShortcutFired, } = {}) {
|
|
|
132
131
|
* @returns {string} The active scope.
|
|
133
132
|
*/
|
|
134
133
|
const getActiveScope = React.useCallback(() => {
|
|
135
|
-
return managerRef.current?.getActiveScope();
|
|
134
|
+
return managerRef.current?.getActiveScope() ?? '';
|
|
136
135
|
}, []);
|
|
137
136
|
/**
|
|
138
137
|
* Disables all shortcuts in the specified scope or all scopes if no scope is provided.
|
|
@@ -171,7 +170,7 @@ function useKeybindy({ logs = false, onShortcutFired, } = {}) {
|
|
|
171
170
|
* @returns An array of scopes.
|
|
172
171
|
*/
|
|
173
172
|
const getScopes = React.useCallback(() => {
|
|
174
|
-
return managerRef.current?.getScopes();
|
|
173
|
+
return managerRef.current?.getScopes() ?? [];
|
|
175
174
|
}, []);
|
|
176
175
|
/**
|
|
177
176
|
* Checks if the given scope is active.
|
|
@@ -248,6 +247,6 @@ function useKeybindy({ logs = false, onShortcutFired, } = {}) {
|
|
|
248
247
|
disableAll,
|
|
249
248
|
manager: managerRef.current,
|
|
250
249
|
};
|
|
251
|
-
}
|
|
250
|
+
};
|
|
252
251
|
|
|
253
252
|
export { useKeybindy };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@keybindy/react",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
4
|
"description": "Keybindy for React: Simple, scoped keyboard shortcuts that require little setup. designed to smoothly blend in with your React applications, allowing for robust keybinding functionality without the overhead.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "PRASSamin",
|
|
@@ -49,7 +49,8 @@
|
|
|
49
49
|
"format": "prettier --write \"src/**/*.{ts,tsx}\"",
|
|
50
50
|
"publish": "npm publish --access public",
|
|
51
51
|
"prebuild": "rm -rf dist",
|
|
52
|
-
"build": "rollup -c"
|
|
52
|
+
"build": "rollup -c",
|
|
53
|
+
"dev": "rollup -c -w"
|
|
53
54
|
},
|
|
54
55
|
"devDependencies": {
|
|
55
56
|
"@rollup/plugin-commonjs": "^28.0.3",
|
|
@@ -65,7 +66,7 @@
|
|
|
65
66
|
"typescript": "^5.0.0"
|
|
66
67
|
},
|
|
67
68
|
"dependencies": {
|
|
68
|
-
"@keybindy/core": "^1.0.
|
|
69
|
+
"@keybindy/core": "^1.0.2",
|
|
69
70
|
"react": "^19.1.0"
|
|
70
71
|
}
|
|
71
|
-
}
|
|
72
|
+
}
|