react-better-hotkeys 0.2.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.
Files changed (105) hide show
  1. package/LICENSE +9 -0
  2. package/README.md +74 -0
  3. package/dist/HotkeyRegistry.d.ts +28 -0
  4. package/dist/HotkeyRegistry.d.ts.map +1 -0
  5. package/dist/HotkeyRegistry.js +132 -0
  6. package/dist/HotkeyTextResolver.d.ts +12 -0
  7. package/dist/HotkeyTextResolver.d.ts.map +1 -0
  8. package/dist/HotkeyTextResolver.js +45 -0
  9. package/dist/context/HotkeyContext.d.ts +8 -0
  10. package/dist/context/HotkeyContext.d.ts.map +1 -0
  11. package/dist/context/HotkeyContext.js +7 -0
  12. package/dist/context/HotkeyProvider.d.ts +4 -0
  13. package/dist/context/HotkeyProvider.d.ts.map +1 -0
  14. package/dist/context/HotkeyProvider.js +31 -0
  15. package/dist/definitions/Chord.d.ts +6 -0
  16. package/dist/definitions/Chord.d.ts.map +1 -0
  17. package/dist/definitions/Chord.js +32 -0
  18. package/dist/definitions/Hotkey.d.ts +7 -0
  19. package/dist/definitions/Hotkey.d.ts.map +1 -0
  20. package/dist/definitions/Hotkey.js +13 -0
  21. package/dist/definitions/KeyMap.d.ts +5 -0
  22. package/dist/definitions/KeyMap.d.ts.map +1 -0
  23. package/dist/definitions/KeyMap.js +583 -0
  24. package/dist/definitions/ModifierKeyCodes.d.ts +2 -0
  25. package/dist/definitions/ModifierKeyCodes.d.ts.map +1 -0
  26. package/dist/definitions/ModifierKeyCodes.js +10 -0
  27. package/dist/definitions/Sequence.d.ts +4 -0
  28. package/dist/definitions/Sequence.d.ts.map +1 -0
  29. package/dist/definitions/Sequence.js +15 -0
  30. package/dist/hooks/useHotkey.d.ts +18 -0
  31. package/dist/hooks/useHotkey.d.ts.map +1 -0
  32. package/dist/hooks/useHotkey.js +66 -0
  33. package/dist/index.d.ts +7 -0
  34. package/dist/index.d.ts.map +1 -0
  35. package/dist/index.js +12 -0
  36. package/dist/types/hotkey/HotKeyChordDef.d.ts +4 -0
  37. package/dist/types/hotkey/HotKeyChordDef.d.ts.map +1 -0
  38. package/dist/types/hotkey/HotKeyDef.d.ts +4 -0
  39. package/dist/types/hotkey/HotKeyDef.d.ts.map +1 -0
  40. package/dist/types/hotkey/HotKeyDefBase.d.ts +11 -0
  41. package/dist/types/hotkey/HotKeyDefBase.d.ts.map +1 -0
  42. package/dist/types/hotkey/HotKeyDefChordBase.d.ts +9 -0
  43. package/dist/types/hotkey/HotKeyDefChordBase.d.ts.map +1 -0
  44. package/dist/types/hotkey/HotKeyDefSequenceBase.d.ts +6 -0
  45. package/dist/types/hotkey/HotKeyDefSequenceBase.d.ts.map +1 -0
  46. package/dist/types/hotkey/HotKeySequenceDef.d.ts +4 -0
  47. package/dist/types/hotkey/HotKeySequenceDef.d.ts.map +1 -0
  48. package/dist/types/hotkey/HotkeyCallback.d.ts +2 -0
  49. package/dist/types/hotkey/HotkeyCallback.d.ts.map +1 -0
  50. package/dist/types/hotkey/HotkeyOptions.d.ts +21 -0
  51. package/dist/types/hotkey/HotkeyOptions.d.ts.map +1 -0
  52. package/dist/types/hotkey/HotkeyTextParts.d.ts +2 -0
  53. package/dist/types/hotkey/HotkeyTextParts.d.ts.map +1 -0
  54. package/dist/types/hotkey/HotkeyType.d.ts +2 -0
  55. package/dist/types/hotkey/HotkeyType.d.ts.map +1 -0
  56. package/dist/types/hotkey/UseHotkeyFn.d.ts +3 -0
  57. package/dist/types/hotkey/UseHotkeyFn.d.ts.map +1 -0
  58. package/dist/types/hotkey/chord/ChordNode.d.ts +7 -0
  59. package/dist/types/hotkey/chord/ChordNode.d.ts.map +1 -0
  60. package/dist/types/hotkey/chord/HotkeyChordBuilder.d.ts +6 -0
  61. package/dist/types/hotkey/chord/HotkeyChordBuilder.d.ts.map +1 -0
  62. package/dist/types/hotkey/chord/IncompleteChordHotkey.d.ts +6 -0
  63. package/dist/types/hotkey/chord/IncompleteChordHotkey.d.ts.map +1 -0
  64. package/dist/types/hotkey/provider/HotkeyProviderProps.d.ts +16 -0
  65. package/dist/types/hotkey/provider/HotkeyProviderProps.d.ts.map +1 -0
  66. package/dist/types/hotkey/sequence/HotkeySequenceBuilder.d.ts +4 -0
  67. package/dist/types/hotkey/sequence/HotkeySequenceBuilder.d.ts.map +1 -0
  68. package/dist/types/hotkey/sequence/SequenceNode.d.ts +7 -0
  69. package/dist/types/hotkey/sequence/SequenceNode.d.ts.map +1 -0
  70. package/dist/types/hotkey/sequence/SequenceTree.d.ts +11 -0
  71. package/dist/types/hotkey/sequence/SequenceTree.d.ts.map +1 -0
  72. package/dist/types/key/KeyDescription.d.ts +6 -0
  73. package/dist/types/key/KeyDescription.d.ts.map +1 -0
  74. package/dist/types/key/KeyValueType.d.ts +2 -0
  75. package/dist/types/key/KeyValueType.d.ts.map +1 -0
  76. package/dist/types/key/ModifierKeyCode.d.ts +3 -0
  77. package/dist/types/key/ModifierKeyCode.d.ts.map +1 -0
  78. package/dist/types/key/PrimaryKey.d.ts +4 -0
  79. package/dist/types/key/PrimaryKey.d.ts.map +1 -0
  80. package/dist/types/key/PrimaryKeyCode.d.ts +2 -0
  81. package/dist/types/key/PrimaryKeyCode.d.ts.map +1 -0
  82. package/dist/types/key/PrimaryKeyValue.d.ts +2 -0
  83. package/dist/types/key/PrimaryKeyValue.d.ts.map +1 -0
  84. package/dist/util/checkModifierPressed.d.ts +3 -0
  85. package/dist/util/checkModifierPressed.d.ts.map +1 -0
  86. package/dist/util/checkModifierPressed.js +6 -0
  87. package/dist/util/detectOS.d.ts +3 -0
  88. package/dist/util/detectOS.d.ts.map +1 -0
  89. package/dist/util/detectOS.js +11 -0
  90. package/dist/util/isCleanKeydown.d.ts +2 -0
  91. package/dist/util/isCleanKeydown.d.ts.map +1 -0
  92. package/dist/util/isCleanKeydown.js +6 -0
  93. package/dist/util/isEditable.d.ts +2 -0
  94. package/dist/util/isEditable.d.ts.map +1 -0
  95. package/dist/util/isEditable.js +30 -0
  96. package/dist/util/isModifierKeyboardEvent.d.ts +2 -0
  97. package/dist/util/isModifierKeyboardEvent.d.ts.map +1 -0
  98. package/dist/util/isModifierKeyboardEvent.js +6 -0
  99. package/dist/util/isPrimaryKeyCode.d.ts +4 -0
  100. package/dist/util/isPrimaryKeyCode.d.ts.map +1 -0
  101. package/dist/util/isPrimaryKeyCode.js +6 -0
  102. package/dist/util/wrongModifierPressed.d.ts +3 -0
  103. package/dist/util/wrongModifierPressed.d.ts.map +1 -0
  104. package/dist/util/wrongModifierPressed.js +6 -0
  105. package/package.json +61 -0
@@ -0,0 +1,583 @@
1
+ const e = {
2
+ Zero: {
3
+ on: "code",
4
+ value: "Digit0"
5
+ },
6
+ One: {
7
+ on: "code",
8
+ value: "Digit1"
9
+ },
10
+ Two: {
11
+ on: "code",
12
+ value: "Digit2"
13
+ },
14
+ Three: {
15
+ on: "code",
16
+ value: "Digit3"
17
+ },
18
+ Four: {
19
+ on: "code",
20
+ value: "Digit4"
21
+ },
22
+ Five: {
23
+ on: "code",
24
+ value: "Digit5"
25
+ },
26
+ Six: {
27
+ on: "code",
28
+ value: "Digit6"
29
+ },
30
+ Seven: {
31
+ on: "code",
32
+ value: "Digit7"
33
+ },
34
+ Eight: {
35
+ on: "code",
36
+ value: "Digit8"
37
+ },
38
+ Nine: {
39
+ on: "code",
40
+ value: "Digit9"
41
+ },
42
+ A: {
43
+ on: "code",
44
+ value: "KeyA"
45
+ },
46
+ B: {
47
+ on: "code",
48
+ value: "KeyB"
49
+ },
50
+ C: {
51
+ on: "code",
52
+ value: "KeyC"
53
+ },
54
+ D: {
55
+ on: "code",
56
+ value: "KeyD"
57
+ },
58
+ E: {
59
+ on: "code",
60
+ value: "KeyE"
61
+ },
62
+ F: {
63
+ on: "code",
64
+ value: "KeyF"
65
+ },
66
+ G: {
67
+ on: "code",
68
+ value: "KeyG"
69
+ },
70
+ H: {
71
+ on: "code",
72
+ value: "KeyH"
73
+ },
74
+ I: {
75
+ on: "code",
76
+ value: "KeyI"
77
+ },
78
+ J: {
79
+ on: "code",
80
+ value: "KeyJ"
81
+ },
82
+ K: {
83
+ on: "code",
84
+ value: "KeyK"
85
+ },
86
+ L: {
87
+ on: "code",
88
+ value: "KeyL"
89
+ },
90
+ M: {
91
+ on: "code",
92
+ value: "KeyM"
93
+ },
94
+ N: {
95
+ on: "code",
96
+ value: "KeyN"
97
+ },
98
+ O: {
99
+ on: "code",
100
+ value: "KeyO"
101
+ },
102
+ P: {
103
+ on: "code",
104
+ value: "KeyP"
105
+ },
106
+ Q: {
107
+ on: "code",
108
+ value: "KeyQ"
109
+ },
110
+ R: {
111
+ on: "code",
112
+ value: "KeyR"
113
+ },
114
+ S: {
115
+ on: "code",
116
+ value: "KeyS"
117
+ },
118
+ T: {
119
+ on: "code",
120
+ value: "KeyT"
121
+ },
122
+ U: {
123
+ on: "code",
124
+ value: "KeyU"
125
+ },
126
+ V: {
127
+ on: "code",
128
+ value: "KeyV"
129
+ },
130
+ W: {
131
+ on: "code",
132
+ value: "KeyW"
133
+ },
134
+ X: {
135
+ on: "code",
136
+ value: "KeyX"
137
+ },
138
+ Y: {
139
+ on: "code",
140
+ value: "KeyY"
141
+ },
142
+ Z: {
143
+ on: "code",
144
+ value: "KeyZ"
145
+ },
146
+ F1: {
147
+ on: "code",
148
+ value: "F1"
149
+ },
150
+ F2: {
151
+ on: "code",
152
+ value: "F2"
153
+ },
154
+ F3: {
155
+ on: "code",
156
+ value: "F3"
157
+ },
158
+ F4: {
159
+ on: "code",
160
+ value: "F4"
161
+ },
162
+ F5: {
163
+ on: "code",
164
+ value: "F5"
165
+ },
166
+ F6: {
167
+ on: "code",
168
+ value: "F6"
169
+ },
170
+ F7: {
171
+ on: "code",
172
+ value: "F7"
173
+ },
174
+ F8: {
175
+ on: "code",
176
+ value: "F8"
177
+ },
178
+ F9: {
179
+ on: "code",
180
+ value: "F9"
181
+ },
182
+ F10: {
183
+ on: "code",
184
+ value: "F10"
185
+ },
186
+ F11: {
187
+ on: "code",
188
+ value: "F11"
189
+ },
190
+ F12: {
191
+ on: "code",
192
+ value: "F12"
193
+ },
194
+ NumLock: {
195
+ on: "code",
196
+ value: ""
197
+ //TODO
198
+ },
199
+ Numpad0: {
200
+ on: "code",
201
+ value: ""
202
+ //TODO
203
+ },
204
+ Numpad1: {
205
+ on: "code",
206
+ value: ""
207
+ //TODO
208
+ },
209
+ Numpad2: {
210
+ on: "code",
211
+ value: ""
212
+ //TODO
213
+ },
214
+ Numpad3: {
215
+ on: "code",
216
+ value: ""
217
+ //TODO
218
+ },
219
+ Numpad4: {
220
+ on: "code",
221
+ value: ""
222
+ //TODO
223
+ },
224
+ Numpad5: {
225
+ on: "code",
226
+ value: ""
227
+ //TODO
228
+ },
229
+ Numpad6: {
230
+ on: "code",
231
+ value: ""
232
+ //TODO
233
+ },
234
+ Numpad7: {
235
+ on: "code",
236
+ value: ""
237
+ //TODO
238
+ },
239
+ Numpad8: {
240
+ on: "code",
241
+ value: ""
242
+ //TODO
243
+ },
244
+ Numpad9: {
245
+ on: "code",
246
+ value: ""
247
+ //TODO
248
+ },
249
+ NumpadAdd: {
250
+ on: "code",
251
+ value: ""
252
+ //TODO
253
+ },
254
+ NumpadDecimal: {
255
+ on: "code",
256
+ value: ""
257
+ //TODO
258
+ },
259
+ NumpadDivide: {
260
+ on: "code",
261
+ value: ""
262
+ //TODO
263
+ },
264
+ NumpadEnter: {
265
+ on: "code",
266
+ value: ""
267
+ //TODO
268
+ },
269
+ NumpadEqual: {
270
+ on: "code",
271
+ value: ""
272
+ //TODO
273
+ },
274
+ NumpadMultiply: {
275
+ on: "code",
276
+ value: ""
277
+ //TODO
278
+ },
279
+ NumpadSubtract: {
280
+ on: "code",
281
+ value: ""
282
+ //TODO
283
+ },
284
+ ArrowDown: {
285
+ on: "code",
286
+ value: "ArrowDown"
287
+ },
288
+ ArrowLeft: {
289
+ on: "code",
290
+ value: "ArrowLeft"
291
+ },
292
+ ArrowRight: {
293
+ on: "code",
294
+ value: "ArrowRight"
295
+ },
296
+ ArrowUp: {
297
+ on: "code",
298
+ value: "ArrowUp"
299
+ },
300
+ Backquote: {
301
+ on: "code",
302
+ value: "Backquote"
303
+ },
304
+ Backslash: {
305
+ on: "code",
306
+ value: "Backslash"
307
+ },
308
+ Backspace: {
309
+ on: "code",
310
+ value: "Backspace"
311
+ },
312
+ BracketLeft: {
313
+ on: "code",
314
+ value: "BracketLeft"
315
+ },
316
+ BracketRight: {
317
+ on: "code",
318
+ value: "BracketRight"
319
+ },
320
+ CapsLock: {
321
+ on: "code",
322
+ value: "CapsLock"
323
+ },
324
+ Comma: {
325
+ on: "code",
326
+ value: "Comma"
327
+ },
328
+ Delete: {
329
+ on: "code",
330
+ value: "Delete"
331
+ },
332
+ End: {
333
+ on: "code",
334
+ value: ""
335
+ //TODO
336
+ },
337
+ Enter: {
338
+ on: "code",
339
+ value: "Enter"
340
+ },
341
+ Equal: {
342
+ on: "code",
343
+ value: "Equal"
344
+ },
345
+ Escape: {
346
+ on: "code",
347
+ value: "Escape"
348
+ },
349
+ Minus: {
350
+ on: "code",
351
+ value: "Minus"
352
+ },
353
+ Home: {
354
+ on: "code",
355
+ value: ""
356
+ // TODO
357
+ },
358
+ PageDown: {
359
+ on: "code",
360
+ value: ""
361
+ //TODO
362
+ },
363
+ PageUp: {
364
+ on: "code",
365
+ value: ""
366
+ //TODO
367
+ },
368
+ Period: {
369
+ on: "code",
370
+ value: "Period"
371
+ },
372
+ Quote: {
373
+ on: "code",
374
+ value: "Quote"
375
+ },
376
+ Semicolon: {
377
+ on: "code",
378
+ value: "Semicolon"
379
+ },
380
+ Slash: {
381
+ on: "code",
382
+ value: "Slash"
383
+ },
384
+ Space: {
385
+ on: "code",
386
+ value: "Space"
387
+ },
388
+ Tab: {
389
+ on: "code",
390
+ value: "Tab"
391
+ },
392
+ KeyZero: {
393
+ on: "key",
394
+ value: "0"
395
+ },
396
+ KeyOne: {
397
+ on: "key",
398
+ value: "1"
399
+ },
400
+ KeyTwo: {
401
+ on: "key",
402
+ value: "2"
403
+ },
404
+ KeyThree: {
405
+ on: "key",
406
+ value: "3"
407
+ },
408
+ KeyFour: {
409
+ on: "key",
410
+ value: "4"
411
+ },
412
+ KeyFive: {
413
+ on: "key",
414
+ value: "5"
415
+ },
416
+ KeySix: {
417
+ on: "key",
418
+ value: "6"
419
+ },
420
+ KeySeven: {
421
+ on: "key",
422
+ value: "7"
423
+ },
424
+ KeyEight: {
425
+ on: "key",
426
+ value: "8"
427
+ },
428
+ KeyNine: {
429
+ on: "key",
430
+ value: "9"
431
+ },
432
+ KeyA: {
433
+ on: "key",
434
+ value: "a"
435
+ },
436
+ KeyB: {
437
+ on: "key",
438
+ value: "b"
439
+ },
440
+ KeyC: {
441
+ on: "key",
442
+ value: "c"
443
+ },
444
+ KeyD: {
445
+ on: "key",
446
+ value: "d"
447
+ },
448
+ KeyE: {
449
+ on: "key",
450
+ value: "e"
451
+ },
452
+ KeyF: {
453
+ on: "key",
454
+ value: "f"
455
+ },
456
+ KeyG: {
457
+ on: "key",
458
+ value: "g"
459
+ },
460
+ KeyH: {
461
+ on: "key",
462
+ value: "h"
463
+ },
464
+ KeyI: {
465
+ on: "key",
466
+ value: "i"
467
+ },
468
+ KeyJ: {
469
+ on: "key",
470
+ value: "j"
471
+ },
472
+ KeyK: {
473
+ on: "key",
474
+ value: "k"
475
+ },
476
+ KeyL: {
477
+ on: "key",
478
+ value: "l"
479
+ },
480
+ KeyM: {
481
+ on: "key",
482
+ value: "m"
483
+ },
484
+ KeyN: {
485
+ on: "key",
486
+ value: "n"
487
+ },
488
+ KeyO: {
489
+ on: "key",
490
+ value: "o"
491
+ },
492
+ KeyP: {
493
+ on: "key",
494
+ value: "p"
495
+ },
496
+ KeyQ: {
497
+ on: "key",
498
+ value: "q"
499
+ },
500
+ KeyR: {
501
+ on: "key",
502
+ value: "r"
503
+ },
504
+ KeyS: {
505
+ on: "key",
506
+ value: "s"
507
+ },
508
+ KeyT: {
509
+ on: "key",
510
+ value: "t"
511
+ },
512
+ KeyU: {
513
+ on: "key",
514
+ value: "u"
515
+ },
516
+ KeyV: {
517
+ on: "key",
518
+ value: "v"
519
+ },
520
+ KeyW: {
521
+ on: "key",
522
+ value: "w"
523
+ },
524
+ KeyX: {
525
+ on: "key",
526
+ value: "x"
527
+ },
528
+ KeyY: {
529
+ on: "key",
530
+ value: "y"
531
+ },
532
+ KeyZ: {
533
+ on: "key",
534
+ value: "z"
535
+ },
536
+ KeyBackquote: {
537
+ on: "key",
538
+ value: "`"
539
+ },
540
+ KeyBackslash: {
541
+ on: "key",
542
+ value: "\\"
543
+ },
544
+ KeyBracketLeft: {
545
+ on: "key",
546
+ value: "["
547
+ },
548
+ KeyBracketRight: {
549
+ on: "key",
550
+ value: "]"
551
+ },
552
+ KeyComma: {
553
+ on: "key",
554
+ value: ","
555
+ },
556
+ KeyEqual: {
557
+ on: "key",
558
+ value: "="
559
+ },
560
+ KeyMinus: {
561
+ on: "key",
562
+ value: "-"
563
+ },
564
+ KeyPeriod: {
565
+ on: "key",
566
+ value: "."
567
+ },
568
+ KeyQuote: {
569
+ on: "key",
570
+ value: "'"
571
+ },
572
+ KeySemicolon: {
573
+ on: "key",
574
+ value: ";"
575
+ },
576
+ KeySlash: {
577
+ on: "key",
578
+ value: "/"
579
+ }
580
+ };
581
+ export {
582
+ e as KeyMap
583
+ };
@@ -0,0 +1,2 @@
1
+ export declare const ALL_MODIFIER_KEY_CODES: readonly ["Meta", "Alt", "Control", "Shift", "Mod"];
2
+ //# sourceMappingURL=ModifierKeyCodes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModifierKeyCodes.d.ts","sourceRoot":"","sources":["../../src/lib/definitions/ModifierKeyCodes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,qDAMzB,CAAC"}
@@ -0,0 +1,10 @@
1
+ const t = [
2
+ "Meta",
3
+ "Alt",
4
+ "Control",
5
+ "Shift",
6
+ "Mod"
7
+ ];
8
+ export {
9
+ t as ALL_MODIFIER_KEY_CODES
10
+ };
@@ -0,0 +1,4 @@
1
+ import { SequenceNode } from '../types/hotkey/sequence/SequenceNode';
2
+ import { PrimaryKey } from '../types/key/PrimaryKey';
3
+ export declare const createHotkeySequenceBuilder: (mods: PrimaryKey[]) => SequenceNode<PrimaryKey>;
4
+ //# sourceMappingURL=Sequence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sequence.d.ts","sourceRoot":"","sources":["../../src/lib/definitions/Sequence.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,eAAO,MAAM,2BAA2B,GACtC,MAAM,UAAU,EAAE,KACjB,YAAY,CAAC,UAAU,CAmBK,CAAC"}
@@ -0,0 +1,15 @@
1
+ const n = (t) => new Proxy(
2
+ {},
3
+ {
4
+ get(r, e) {
5
+ if (typeof e == "string")
6
+ return e === "end" ? {
7
+ type: "sequence",
8
+ keys: t
9
+ } : n([...t, e]);
10
+ }
11
+ }
12
+ );
13
+ export {
14
+ n as createHotkeySequenceBuilder
15
+ };
@@ -0,0 +1,18 @@
1
+ import { HotKeyDefChordBase } from '../types/hotkey/HotKeyDefChordBase';
2
+ import { HotKeyDefSequenceBase } from '../types/hotkey/HotKeyDefSequenceBase';
3
+ import { HotKeyChordDef } from '../types/hotkey/HotKeyChordDef';
4
+ import { HotKeySequenceDef } from '../types/hotkey/HotKeySequenceDef';
5
+ import { HotkeyCallback } from '../types/hotkey/HotkeyCallback';
6
+ import { HotkeyOptions } from '../types/hotkey/HotkeyOptions';
7
+ type ChordIn = HotKeyDefChordBase;
8
+ type SequenceIn = HotKeyDefSequenceBase;
9
+ type ChordOut = HotKeyChordDef;
10
+ type SequenceOut = HotKeySequenceDef;
11
+ type HotkeyMapping<T extends readonly (ChordIn | SequenceIn)[]> = {
12
+ [K in keyof T]: T[K] extends ChordIn ? ChordOut : SequenceOut;
13
+ };
14
+ export declare function useHotkey(hotkey: ChordIn, callback: HotkeyCallback, dependencies?: unknown[], options?: Partial<HotkeyOptions>): ChordOut;
15
+ export declare function useHotkey(hotkey: SequenceIn, callback: HotkeyCallback, dependencies?: unknown[], options?: Partial<HotkeyOptions>): SequenceOut;
16
+ export declare function useHotkey<const T extends readonly (ChordIn | SequenceIn)[]>(hotkey: T, callback: HotkeyCallback, dependencies?: unknown[], options?: Partial<HotkeyOptions>): HotkeyMapping<typeof hotkey>;
17
+ export {};
18
+ //# sourceMappingURL=useHotkey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHotkey.d.ts","sourceRoot":"","sources":["../../src/lib/hooks/useHotkey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AACnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAMnE,KAAK,OAAO,GAAG,kBAAkB,CAAC;AAClC,KAAK,UAAU,GAAG,qBAAqB,CAAC;AACxC,KAAK,QAAQ,GAAG,cAAc,CAAC;AAC/B,KAAK,WAAW,GAAG,iBAAiB,CAAC;AAKrC,KAAK,aAAa,CAAC,CAAC,SAAS,SAAS,CAAC,OAAO,GAAG,UAAU,CAAC,EAAE,IAAI;KAC/D,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,GAAG,QAAQ,GAAG,WAAW;CAC9D,CAAC;AAOF,wBAAgB,SAAS,CACvB,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,cAAc,EACxB,YAAY,CAAC,EAAE,OAAO,EAAE,EACxB,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAC/B,QAAQ,CAAC;AACZ,wBAAgB,SAAS,CACvB,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,cAAc,EACxB,YAAY,CAAC,EAAE,OAAO,EAAE,EACxB,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAC/B,WAAW,CAAC;AACf,wBAAgB,SAAS,CAAC,KAAK,CAAC,CAAC,SAAS,SAAS,CAAC,OAAO,GAAG,UAAU,CAAC,EAAE,EACzE,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,cAAc,EACxB,YAAY,CAAC,EAAE,OAAO,EAAE,EACxB,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAC/B,aAAa,CAAC,OAAO,MAAM,CAAC,CAAC"}
@@ -0,0 +1,66 @@
1
+ import { useLayoutEffect as m, useEffect as c, useContext as l, useId as v, useMemo as y } from "react";
2
+ import { HotkeyContext as H } from "../context/HotkeyContext.js";
3
+ import { KeyMap as p } from "../definitions/KeyMap.js";
4
+ import { isPrimaryKeyCode as C } from "../util/isPrimaryKeyCode.js";
5
+ const x = typeof window < "u" ? m : c;
6
+ function g(r) {
7
+ return Array.isArray(r);
8
+ }
9
+ function $(r, i, d, f) {
10
+ const t = l(H), n = v(), u = y(
11
+ () => ({
12
+ preventDefault: !0,
13
+ enableOnContentEditable: !1,
14
+ disabled: !1,
15
+ ...f
16
+ }),
17
+ [f]
18
+ ), s = y(() => g(r) ? r.map(
19
+ (o, e) => o.type === "chord" ? {
20
+ ...o,
21
+ options: u,
22
+ id: `${n}-${e}`,
23
+ callback: i,
24
+ toParts: () => [[], ""],
25
+ toString: () => ""
26
+ } : {
27
+ ...o,
28
+ options: u,
29
+ id: `${n}-${e}`,
30
+ callback: i,
31
+ toParts: () => [
32
+ o.keys.map(
33
+ (a) => C(a) ? t?.textResolver.resolve(a) ?? p[a].value : p[a].value
34
+ ),
35
+ ""
36
+ ],
37
+ toString: () => ""
38
+ }
39
+ ) : {
40
+ ...r,
41
+ options: u,
42
+ id: n,
43
+ callback: i,
44
+ toParts: () => [[], ""],
45
+ toString: () => ""
46
+ }, [u, i, r, t?.textResolver, n]);
47
+ return x(() => {
48
+ if (t == null) {
49
+ console.warn(
50
+ "No HotkeyContext provided. Use <HotkeyProvider> to provide a HotkeyContext"
51
+ );
52
+ return;
53
+ }
54
+ const o = Array.isArray(s) ? s : [s];
55
+ return o.forEach((e) => {
56
+ e.type === "chord" ? t.registry.addChordHotkey(e) : t.registry.addSequenceHotkey(e);
57
+ }), () => {
58
+ o.forEach((e) => {
59
+ e.type === "chord" ? t.registry.removeChordHotkey(e.id) : t.registry.removeSequenceHotkey(e.id);
60
+ });
61
+ };
62
+ }, [s, ...d || []]), s;
63
+ }
64
+ export {
65
+ $ as useHotkey
66
+ };
@@ -0,0 +1,7 @@
1
+ import { HotkeyContext } from './context/HotkeyContext';
2
+ import { HotkeyProvider } from './context/HotkeyProvider';
3
+ import { Hotkey } from './definitions/Hotkey';
4
+ import { useHotkey } from './hooks/useHotkey';
5
+ import { detectOS } from './util/detectOS';
6
+ export { Hotkey, useHotkey, HotkeyContext, HotkeyProvider, detectOS };
7
+ //# sourceMappingURL=index.d.ts.map