rx-hotkeys 3.0.0 → 4.0.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 (46) hide show
  1. package/README.md +195 -42
  2. package/dist/{hotkeys.d.ts → core/hotkeys.d.ts} +35 -14
  3. package/dist/core/hotkeys.d.ts.map +1 -0
  4. package/dist/{hotkeys.js → core/hotkeys.js} +107 -42
  5. package/dist/core/hotkeys.js.map +1 -0
  6. package/dist/{hotkeys.test.d.ts.map → core/hotkeys.test.d.ts.map} +1 -1
  7. package/dist/{hotkeys.test.js → core/hotkeys.test.js} +201 -145
  8. package/dist/core/hotkeys.test.js.map +1 -0
  9. package/dist/core/index.d.ts.map +1 -0
  10. package/dist/{index.js → core/index.js} +1 -0
  11. package/dist/core/index.js.map +1 -0
  12. package/dist/core/keys.d.ts.map +1 -0
  13. package/dist/{keys.js → core/keys.js} +1 -0
  14. package/dist/core/keys.js.map +1 -0
  15. package/dist/core/testutils.d.ts.map +1 -0
  16. package/dist/{testutils.js → core/testutils.js} +1 -0
  17. package/dist/core/testutils.js.map +1 -0
  18. package/dist/integrations/react/index.d.ts +3 -0
  19. package/dist/integrations/react/index.d.ts.map +1 -0
  20. package/dist/integrations/react/index.js +3 -0
  21. package/dist/integrations/react/index.js.map +1 -0
  22. package/dist/integrations/react/provider.d.ts +36 -0
  23. package/dist/integrations/react/provider.d.ts.map +1 -0
  24. package/dist/integrations/react/provider.js +85 -0
  25. package/dist/integrations/react/provider.js.map +1 -0
  26. package/dist/integrations/react/useEventCallback.d.ts +14 -0
  27. package/dist/integrations/react/useEventCallback.d.ts.map +1 -0
  28. package/dist/integrations/react/useEventCallback.js +32 -0
  29. package/dist/integrations/react/useEventCallback.js.map +1 -0
  30. package/dist/integrations/react/useHotkeys.d.ts +43 -0
  31. package/dist/integrations/react/useHotkeys.d.ts.map +1 -0
  32. package/dist/integrations/react/useHotkeys.js +76 -0
  33. package/dist/integrations/react/useHotkeys.js.map +1 -0
  34. package/dist/integrations/react/useIsomorphicLayoutEffect.d.ts +3 -0
  35. package/dist/integrations/react/useIsomorphicLayoutEffect.d.ts.map +1 -0
  36. package/dist/integrations/react/useIsomorphicLayoutEffect.js +3 -0
  37. package/dist/integrations/react/useIsomorphicLayoutEffect.js.map +1 -0
  38. package/package.json +19 -8
  39. package/dist/hotkeys.d.ts.map +0 -1
  40. package/dist/index.d.ts.map +0 -1
  41. package/dist/keys.d.ts.map +0 -1
  42. package/dist/testutils.d.ts.map +0 -1
  43. /package/dist/{hotkeys.test.d.ts → core/hotkeys.test.d.ts} +0 -0
  44. /package/dist/{index.d.ts → core/index.d.ts} +0 -0
  45. /package/dist/{keys.d.ts → core/keys.d.ts} +0 -0
  46. /package/dist/{testutils.d.ts → core/testutils.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hotkeys.js","sourceRoot":"","sources":["../../src/core/hotkeys.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"hotkeys.test.d.ts","sourceRoot":"","sources":["../src/hotkeys.test.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"hotkeys.test.d.ts","sourceRoot":"","sources":["../../src/core/hotkeys.test.ts"],"names":[],"mappings":""}
@@ -2,7 +2,7 @@ import { describe, it, before, beforeEach, afterEach, mock } from "node:test";
2
2
  import assert from "node:assert";
3
3
  import { Hotkeys, ShortcutTypes } from "./hotkeys.js";
4
4
  import { Keys } from "./keys.js";
5
- import { fromEvent, BehaviorSubject, Observable, EMPTY } from "rxjs";
5
+ import { fromEvent, BehaviorSubject, Observable, EMPTY, firstValueFrom } from "rxjs";
6
6
  import { createMockFn, dispatchKeyEvent } from "./testutils.js";
7
7
  import { JSDOM } from "jsdom";
8
8
  // --- JSDOM and RxJS setup for Node.js tests ---
@@ -79,99 +79,54 @@ describe("Hotkeys Library (Node.js Test Runner)", () => {
79
79
  }
80
80
  });
81
81
  // ... (Initialization and Basic Context tests remain the same) ...
82
- describe("Initialization and Context Management", () => {
83
- it("should initialize without errors", () => {
82
+ describe("Initialization and Context Stack Management", () => {
83
+ it("should initialize with a base context (null by default)", () => {
84
84
  assert(keyManager instanceof Hotkeys);
85
- assert.strictEqual(keyManager.getContext(), null); // Default initial context
85
+ assert.strictEqual(keyManager.getActiveContext(), null);
86
86
  });
87
- it("should initialize with a null context by default", () => {
88
- assert.strictEqual(keyManager.getContext(), null);
89
- });
90
- it("should initialize with a given initial context (debug off)", () => {
87
+ it("should initialize with a given initial context", () => {
91
88
  const manager = new Hotkeys("editor", false);
92
- assert.strictEqual(manager.getContext(), "editor");
93
- manager.destroy();
94
- });
95
- it("should log library initialization with context in debug mode", () => {
96
- const consoleLogMock = mock.method(console, "log");
97
- const manager = new Hotkeys("debugInitCtx", true);
98
- const initLog = consoleLogMock.mock.calls.find(call => call.arguments[0].includes(`Library initialized. Initial context: "debugInitCtx"`));
99
- assert.ok(initLog, "Library initialization log not found or incorrect.");
89
+ assert.strictEqual(manager.getActiveContext(), "editor");
100
90
  manager.destroy();
101
- consoleLogMock.mock.restore();
102
- });
103
- it("should set and get context correctly", () => {
104
- keyManager.setContext("modal");
105
- assert.strictEqual(keyManager.getContext(), "modal");
106
- keyManager.setContext(null);
107
- assert.strictEqual(keyManager.getContext(), null);
108
- });
109
- it("should log context change correctly when context is different (debug mode on)", () => {
110
- const consoleLogMock = mock.method(console, "log");
111
- keyManager.setDebugMode(true);
112
- // Initial context is null for keyManager
113
- consoleLogMock.mock.resetCalls(); // Clear "Debug mode enabled" log
114
- keyManager.setContext("debug_test");
115
- assert.ok(consoleLogMock.mock.calls.some(call => call.arguments[0].includes(`Context changed from "null" to "debug_test"`)), "Log for context change from null incorrect.");
116
- assert.strictEqual(keyManager.getContext(), "debug_test");
117
- consoleLogMock.mock.resetCalls();
118
- keyManager.setContext("another_test");
119
- assert.ok(consoleLogMock.mock.calls.some(call => call.arguments[0].includes(`Context changed from "debug_test" to "another_test"`)), "Log for context change between non-null incorrect.");
120
- assert.strictEqual(keyManager.getContext(), "another_test");
121
- consoleLogMock.mock.restore();
122
91
  });
123
- it("should log context change from non-null to null (debug mode on)", () => {
92
+ it("should allow entering a new context, making it active", () => {
93
+ assert.strictEqual(keyManager.getActiveContext(), null);
94
+ keyManager.enterContext("modal");
95
+ assert.strictEqual(keyManager.getActiveContext(), "modal");
96
+ });
97
+ it("should allow leaving a context, restoring the previous one and returning the one that was left", () => {
98
+ keyManager.enterContext("modal");
99
+ keyManager.enterContext("dropdown");
100
+ assert.strictEqual(keyManager.getActiveContext(), "dropdown");
101
+ const leftDropdown = keyManager.leaveContext();
102
+ assert.strictEqual(leftDropdown, "dropdown", `Should return "dropdown"`);
103
+ assert.strictEqual(keyManager.getActiveContext(), "modal");
104
+ const leftModal = keyManager.leaveContext();
105
+ assert.strictEqual(leftModal, "modal", `Should return "modal"`);
106
+ assert.strictEqual(keyManager.getActiveContext(), null);
107
+ });
108
+ it("should not allow leaving the base context and should return undefined", () => {
109
+ assert.strictEqual(keyManager.getActiveContext(), null);
110
+ const leftResult1 = keyManager.leaveContext(); // Attempt to leave
111
+ assert.strictEqual(leftResult1, undefined, "Should return undefined when leaving the base");
112
+ assert.strictEqual(keyManager.getActiveContext(), null);
113
+ keyManager.enterContext("modal");
114
+ keyManager.leaveContext();
115
+ const leftResult2 = keyManager.leaveContext(); // Second attempt
116
+ assert.strictEqual(leftResult2, undefined, "Should return undefined on second attempt");
117
+ assert.strictEqual(keyManager.getActiveContext(), null);
118
+ });
119
+ it("should log context changes in debug mode", () => {
124
120
  const consoleLogMock = mock.method(console, "log");
125
- keyManager.setContext("fromCtx"); // Initial context
126
- keyManager.setDebugMode(true);
121
+ const manager = new Hotkeys("base", true); // Debug on
122
+ consoleLogMock.mock.resetCalls(); // Clear init logs
123
+ manager.enterContext("modal");
124
+ assert.ok(consoleLogMock.mock.calls.some(call => call.arguments[0].includes(`Entering context: "modal"`)));
125
+ assert.ok(consoleLogMock.mock.calls.some(call => call.arguments[0].includes(`Active context changed to: modal`)));
127
126
  consoleLogMock.mock.resetCalls();
128
- keyManager.setContext(null);
129
- const logCall = consoleLogMock.mock.calls.find(call => call.arguments[0].includes(`Context changed from "fromCtx" to "null"`));
130
- assert.ok(logCall, "Context change to null log not found or incorrect.");
131
- assert.strictEqual(keyManager.getContext(), null);
132
- consoleLogMock.mock.restore();
133
- });
134
- it(`should not call activeContext$.next and log "no change" if context is set to the same value (debug mode on)`, () => {
135
- keyManager.setContext("sameCtx"); // Set initial context
136
- const consoleLogMock = mock.method(console, "log");
137
- keyManager.setDebugMode(true); // Enable debug for this test
138
- consoleLogMock.mock.resetCalls(); // Clear "Debug mode enabled" log
139
- // @ts-ignore: Accessing private member for test
140
- const activeContextNextSpy = mock.method(keyManager["activeContext$"], "next");
141
- keyManager.setContext("sameCtx"); // Attempt to set the same context
142
- const noChangeLogCall = consoleLogMock.mock.calls.find(call => call.arguments[0].includes(`setContext called with the same context "sameCtx". No change made.`));
143
- assert.ok(noChangeLogCall, "No-change log not found or incorrect for same context.");
144
- const changedLogCall = consoleLogMock.mock.calls.find(call => call.arguments[0].includes(`Context changed from`));
145
- assert.strictEqual(changedLogCall, undefined, "Context changed log should not appear for same context.");
146
- assert.strictEqual(keyManager.getContext(), "sameCtx");
147
- assert.strictEqual(activeContextNextSpy.mock.callCount(), 0, "activeContext$.next should not have been called.");
148
- activeContextNextSpy.mock.restore();
149
- consoleLogMock.mock.restore();
150
- });
151
- it("should not log or call next if context is set to the same value (debug mode off)", () => {
152
- keyManager.setContext("sameCtxNoDebug"); // Set initial context
153
- keyManager.setDebugMode(false);
154
- // Ensure debug is off
155
- const consoleLogMock = mock.method(console, "log");
156
- // @ts-ignore: Accessing private member for test
157
- const activeContextNextSpy = mock.method(keyManager["activeContext$"], "next");
158
- keyManager.setContext("sameCtxNoDebug"); // Attempt to set the same context
159
- assert.strictEqual(consoleLogMock.mock.callCount(), 0, "Console.log should not have been called with debug mode off.");
160
- assert.strictEqual(activeContextNextSpy.mock.callCount(), 0, "activeContext$.next should not have been called.");
161
- assert.strictEqual(keyManager.getContext(), "sameCtxNoDebug");
162
- activeContextNextSpy.mock.restore();
163
- consoleLogMock.mock.restore();
164
- });
165
- it(`should log "no change" if context is set to the same value (debug mode on)`, () => {
166
- keyManager.setContext("sameCtx"); // Set initial context
167
- const consoleLogMock = mock.method(console, "log");
168
- keyManager.setDebugMode(true);
169
- consoleLogMock.mock.resetCalls(); // Clear previous logs
170
- keyManager.setContext("sameCtx"); // Attempt to set the same context
171
- const noChangeLogCall = consoleLogMock.mock.calls.find(call => call.arguments[0].includes(`setContext called with the same context "sameCtx". No change made.`));
172
- assert.ok(noChangeLogCall, "No-change log not found or incorrect for same context.");
173
- const changedLogCall = consoleLogMock.mock.calls.find(call => call.arguments[0].includes("Context changed from"));
174
- assert.strictEqual(changedLogCall, undefined, "Context changed log should not appear for same context.");
127
+ manager.leaveContext();
128
+ assert.ok(consoleLogMock.mock.calls.some(call => call.arguments[0].includes(`Leaving context: "modal"`)));
129
+ assert.ok(consoleLogMock.mock.calls.some(call => call.arguments[0].includes(`Active context changed to: base`)));
175
130
  consoleLogMock.mock.restore();
176
131
  });
177
132
  it("should toggle debug mode and log its state", () => {
@@ -183,73 +138,171 @@ describe("Hotkeys Library (Node.js Test Runner)", () => {
183
138
  assert.ok(consoleLogMock.mock.calls.some(call => call.arguments[0].includes("Debug mode disabled")));
184
139
  consoleLogMock.mock.restore();
185
140
  });
186
- describe("setContext return value", () => {
187
- it("should return true when context is changed from null to a new value", () => {
188
- assert.strictEqual(keyManager.getContext(), null, "Initial context should be null");
189
- const result = keyManager.setContext("newContext");
190
- assert.strictEqual(result, true, "setContext should return true for a change from null");
191
- assert.strictEqual(keyManager.getContext(), "newContext");
192
- });
193
- it("should return true when context is changed from one value to another", () => {
194
- keyManager.setContext("initialContext"); // Set a non-null initial context
195
- const result = keyManager.setContext("changedContext");
196
- assert.strictEqual(result, true, "setContext should return true for a value-to-value change");
197
- assert.strictEqual(keyManager.getContext(), "changedContext");
198
- });
199
- it("should return false when context is set to the same value (non-null)", () => {
200
- keyManager.setContext("sameContext");
201
- const result = keyManager.setContext("sameContext");
202
- assert.strictEqual(result, false, "setContext should return false for no change (non-null)");
203
- assert.strictEqual(keyManager.getContext(), "sameContext");
204
- });
205
- it("should return true when context is changed from a value to null", () => {
206
- keyManager.setContext("initialContext");
207
- const result = keyManager.setContext(null);
208
- assert.strictEqual(result, true, "setContext should return true for a change to null");
209
- assert.strictEqual(keyManager.getContext(), null);
210
- });
211
- it("should return false when context is set to null and already null", () => {
212
- keyManager.setContext(null); // Ensure context is null
213
- const result = keyManager.setContext(null);
214
- assert.strictEqual(result, false, "setContext should return false for no change (already null)");
215
- assert.strictEqual(keyManager.getContext(), null);
216
- });
217
- });
218
- describe("onContextChange$ observable", () => {
219
- it("should emit initial context to new subscriber", () => {
220
- const manager = new Hotkeys("initial", false);
221
- const spy = createMockFn();
222
- const sub = manager.onContextChange$.subscribe(spy);
223
- assert.strictEqual(spy.calledCount, 1);
224
- assert.strictEqual(spy.lastArgs[0], "initial");
225
- sub.unsubscribe();
141
+ describe("activeContext$ observable", () => {
142
+ it("should emit the initial context to a new subscriber", async () => {
143
+ const manager = new Hotkeys("initial");
144
+ const activeContext = await firstValueFrom(manager.onContextChange$);
145
+ assert.strictEqual(activeContext, "initial");
226
146
  manager.destroy();
227
147
  });
228
- it("should emit when context changes", () => {
148
+ it("should emit when the active context changes via enter/leave", () => {
229
149
  const spy = createMockFn();
230
- const sub = keyManager.onContextChange$.subscribe(spy); // Subscribes, gets initial null
231
- spy.mockClear(); // Clear initial emission
232
- assert.ok(keyManager.setContext("newContext"), "setContext should have returned true for change");
233
- assert.strictEqual(spy.calledCount, 1, "onContextChange$ did not emit on first change");
150
+ const sub = keyManager.onContextChange$.subscribe(spy);
151
+ assert.strictEqual(spy.calledCount, 1, "Did not emit initial context");
152
+ assert.strictEqual(spy.lastArgs[0], null);
153
+ keyManager.enterContext("newContext");
154
+ assert.strictEqual(spy.calledCount, 2, "Did not emit on enterContext");
234
155
  assert.strictEqual(spy.lastArgs[0], "newContext");
235
- assert.ok(keyManager.setContext("anotherContext"), "setContext should have returned true for second change");
236
- assert.strictEqual(spy.calledCount, 2, "onContextChange$ did not emit on second change");
156
+ keyManager.enterContext("anotherContext");
157
+ assert.strictEqual(spy.calledCount, 3, "Did not emit on second enterContext");
237
158
  assert.strictEqual(spy.lastArgs[0], "anotherContext");
238
- assert.ok(keyManager.setContext(null), "setContext should have returned true for change to null");
239
- assert.strictEqual(spy.calledCount, 3, "onContextChange$ did not emit on change to null");
159
+ keyManager.leaveContext();
160
+ assert.strictEqual(spy.calledCount, 4, "Did not emit on leaveContext");
161
+ assert.strictEqual(spy.lastArgs[0], "newContext");
162
+ keyManager.leaveContext();
163
+ assert.strictEqual(spy.calledCount, 5, "Did not emit on final leaveContext");
240
164
  assert.strictEqual(spy.lastArgs[0], null);
241
165
  sub.unsubscribe();
242
166
  });
243
- it("should not emit if context is set to the same value", () => {
244
- keyManager.setContext("testContext");
167
+ it("should not emit if the active context does not change (e.g. attempting to leave base context)", () => {
245
168
  const spy = createMockFn();
246
- const sub = keyManager.onContextChange$.subscribe(spy); // Subscribes, gets "testContext"
169
+ const sub = keyManager.onContextChange$.subscribe(spy); // Emits initial `null`
247
170
  spy.mockClear(); // Clear initial emission
248
- assert.strictEqual(keyManager.setContext("testContext"), false, "setContext should have returned false for no change"); // Set same context
249
- assert.strictEqual(spy.calledCount, 0, "Observable should not emit if context value is the same.");
171
+ keyManager.leaveContext();
172
+ assert.strictEqual(spy.calledCount, 0, "Should not emit when leaving base context");
250
173
  sub.unsubscribe();
251
174
  });
252
175
  });
176
+ describe("Deprecated context methods", () => {
177
+ it("getContext should warn and return active context", () => {
178
+ keyManager.enterContext("test");
179
+ const ctx = keyManager.getContext();
180
+ assert.strictEqual(ctx, "test");
181
+ assert.ok(consoleWarnMock.mock.calls.some(c => c.arguments[0].includes(`"getContext" is deprecated`)));
182
+ });
183
+ });
184
+ });
185
+ describe("Context Management (Stack and Override)", () => {
186
+ describe("Context Stack (enter/leave)", () => {
187
+ it("should enter and leave contexts on the stack correctly", () => {
188
+ assert.strictEqual(keyManager.getActiveContext(), null);
189
+ keyManager.enterContext("modal");
190
+ assert.strictEqual(keyManager.getActiveContext(), "modal");
191
+ keyManager.enterContext("dropdown");
192
+ assert.strictEqual(keyManager.getActiveContext(), "dropdown");
193
+ const left1 = keyManager.leaveContext();
194
+ assert.strictEqual(left1, "dropdown");
195
+ assert.strictEqual(keyManager.getActiveContext(), "modal");
196
+ const left2 = keyManager.leaveContext();
197
+ assert.strictEqual(left2, "modal");
198
+ assert.strictEqual(keyManager.getActiveContext(), null);
199
+ const left3 = keyManager.leaveContext();
200
+ assert.strictEqual(left3, undefined);
201
+ });
202
+ });
203
+ describe("Context Override (setContext/restore)", () => {
204
+ it("setContext should set an override context and return a restore function", () => {
205
+ keyManager.enterContext("parent");
206
+ assert.strictEqual(keyManager.getActiveContext(), "parent");
207
+ const restore = keyManager.setContext("override");
208
+ assert.strictEqual(keyManager.getActiveContext(), "override");
209
+ restore();
210
+ assert.strictEqual(keyManager.getActiveContext(), "parent");
211
+ });
212
+ it("the override context should take precedence over the stack context", () => {
213
+ keyManager.enterContext("parent");
214
+ keyManager.setContext("override");
215
+ // Even if we change the stack, the override should remain active
216
+ keyManager.enterContext("child");
217
+ assert.strictEqual(keyManager.getActiveContext(), "override");
218
+ keyManager.leaveContext(); // leaves "child"
219
+ assert.strictEqual(keyManager.getActiveContext(), "override");
220
+ });
221
+ it("restoring the override should reveal the correct, current stack context", () => {
222
+ keyManager.enterContext("parent");
223
+ const restore = keyManager.setContext("override");
224
+ keyManager.enterContext("child");
225
+ assert.strictEqual(keyManager.getActiveContext(), "override");
226
+ restore();
227
+ assert.strictEqual(keyManager.getActiveContext(), "child", `Should reveal "child" which is top of the stack`);
228
+ });
229
+ it("should distinguish between restoring an override and setting an override to null", () => {
230
+ keyManager.enterContext("parent");
231
+ assert.strictEqual(keyManager.getActiveContext(), "parent");
232
+ // 1. Set an override to "null". The active context should be null.
233
+ const restoreNull = keyManager.setContext(null);
234
+ assert.strictEqual(keyManager.getActiveContext(), null, "Active context should be null due to override.");
235
+ // Leaving the stack context should have no effect on the active context, since the override is active.
236
+ keyManager.leaveContext(); // Tries to leave "parent"
237
+ assert.strictEqual(keyManager.getActiveContext(), null, "Active context should still be null after stack change.");
238
+ // Restore from the null override. Active context should revert to the top of the stack.
239
+ restoreNull();
240
+ assert.strictEqual(keyManager.getActiveContext(), null, `Active context should now be from the stack, which is "null".`);
241
+ // 2. Test restore from a non-null override
242
+ keyManager.enterContext("parent"); // Stack is [null, parent]
243
+ const restoreEditor = keyManager.setContext("editor");
244
+ assert.strictEqual(keyManager.getActiveContext(), "editor");
245
+ restoreEditor();
246
+ assert.strictEqual(keyManager.getActiveContext(), "parent");
247
+ });
248
+ });
249
+ describe("Active Context Logic and Shortcuts", () => {
250
+ it("should trigger shortcuts based on the override context", () => {
251
+ const overrideCb = createMockFn();
252
+ keyManager.addCombination({ id: "o", keys: "o", context: "override" }).subscribe(overrideCb);
253
+ const parentCb = createMockFn();
254
+ keyManager.addCombination({ id: "p", keys: "p", context: "parent" }).subscribe(parentCb);
255
+ keyManager.enterContext("parent");
256
+ keyManager.setContext("override");
257
+ dispatchKeyEvent(document, "p");
258
+ assert.strictEqual(parentCb.calledCount, 0);
259
+ dispatchKeyEvent(document, "o");
260
+ assert.strictEqual(overrideCb.calledCount, 1);
261
+ });
262
+ it("should trigger stack context shortcuts after override is restored", () => {
263
+ const overrideCb = createMockFn();
264
+ keyManager.addCombination({ id: "o", keys: "o", context: "override" }).subscribe(overrideCb);
265
+ const parentCb = createMockFn();
266
+ keyManager.addCombination({ id: "p", keys: "p", context: "parent" }).subscribe(parentCb);
267
+ keyManager.enterContext("parent");
268
+ const restore = keyManager.setContext("override");
269
+ dispatchKeyEvent(document, "p");
270
+ assert.strictEqual(parentCb.calledCount, 0);
271
+ restore(); // Restore context back to "parent"
272
+ dispatchKeyEvent(document, "p");
273
+ assert.strictEqual(parentCb.calledCount, 1);
274
+ dispatchKeyEvent(document, "o");
275
+ assert.strictEqual(overrideCb.calledCount, 0);
276
+ });
277
+ });
278
+ });
279
+ describe("Contextual Shortcut Triggering", () => {
280
+ it("should only trigger shortcut in its active context", () => {
281
+ keyManager.addCombination({ id: "test", keys: "a", context: "editor" }).subscribe(mockCallback);
282
+ // 1. Wrong context
283
+ keyManager.enterContext("modal");
284
+ dispatchKeyEvent(document, "a");
285
+ assert.strictEqual(mockCallback.calledCount, 0, `Should not trigger in "modal" context`);
286
+ // 2. No context (should not trigger)
287
+ keyManager.leaveContext(); // back to "null"
288
+ dispatchKeyEvent(document, "a");
289
+ assert.strictEqual(mockCallback.calledCount, 0, `Should not trigger in "null" context`);
290
+ // 3. Correct context
291
+ keyManager.enterContext("editor");
292
+ dispatchKeyEvent(document, "a");
293
+ assert.strictEqual(mockCallback.calledCount, 1, `Should trigger in "editor" context`);
294
+ });
295
+ it("global shortcut should trigger if no specific context is active", () => {
296
+ keyManager.addCombination({ id: "global", keys: "g" }).subscribe(mockCallback);
297
+ dispatchKeyEvent(document, "g");
298
+ assert.strictEqual(mockCallback.calledCount, 1, `Global shortcut should trigger in "null" context`);
299
+ });
300
+ it("global shortcut should trigger if a different specific context is active", () => {
301
+ keyManager.addCombination({ id: "global", keys: "g" }).subscribe(mockCallback);
302
+ keyManager.enterContext("editor");
303
+ dispatchKeyEvent(document, "g");
304
+ assert.strictEqual(mockCallback.calledCount, 1, "Global shortcut should trigger in any active context");
305
+ });
253
306
  });
254
307
  describe("addCombination", () => {
255
308
  it(`should return an Observable that emits on a simple key combination (e.g., "A")`, () => {
@@ -637,18 +690,20 @@ describe("Hotkeys Library (Node.js Test Runner)", () => {
637
690
  }).subscribe(specificCallback);
638
691
  });
639
692
  it("should only trigger specific context callback when specific context is active", () => {
640
- keyManager.setContext("editor");
693
+ keyManager.enterContext("editor");
641
694
  dispatchKeyEvent(document, Keys.G, "keydown", { ctrlKey: true });
642
695
  assert.strictEqual(specificCallback.calledCount, 1, "Specific callback should have been called");
643
696
  assert.strictEqual(globalCallback.calledCount, 0, "Global callback should NOT have been called");
644
697
  });
645
- it("should only trigger global callback when no specific context is active (or context doesn't match)", () => {
646
- keyManager.setContext(null); // No specific context
698
+ it("should only trigger global callback when no specific context is active", () => {
699
+ // Initial context is null
647
700
  dispatchKeyEvent(document, Keys.G, "keydown", { ctrlKey: true });
648
701
  assert.strictEqual(specificCallback.calledCount, 0, "Specific callback should NOT have been called");
649
702
  assert.strictEqual(globalCallback.calledCount, 1, "Global callback should have been called");
703
+ });
704
+ it("should trigger global callback when a non-matching specific context is active", () => {
650
705
  globalCallback.mockClear();
651
- keyManager.setContext("anotherContext"); // Different specific context
706
+ keyManager.enterContext("anotherContext"); // Different specific context
652
707
  dispatchKeyEvent(document, Keys.G, "keydown", { ctrlKey: true });
653
708
  assert.strictEqual(specificCallback.calledCount, 0, `Specific callback should NOT have been called for "anotherContext"`);
654
709
  assert.strictEqual(globalCallback.calledCount, 1, `Global callback should have been called when in "anotherContext"`);
@@ -981,3 +1036,4 @@ describe("Hotkeys Library (Node.js Test Runner)", () => {
981
1036
  });
982
1037
  });
983
1038
  });
1039
+ //# sourceMappingURL=hotkeys.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hotkeys.test.js","sourceRoot":"","sources":["../../src/core/hotkeys.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,WAAW,EAChB,IAAI,GACP,MAAM,WAAW,CAAC;AACnB,OAAO,EACH,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,OAAO,GACV,MAAM,cAAc,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export { Keys, } from "./keys.js";
2
2
  export { Hotkeys, } from "./hotkeys.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,IAAI,GACP,MAAM,WAAW,CAAC;AACnB,OAAO,EAGH,OAAO,GACV,MAAM,cAAc,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../src/core/keys.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyHP,CAAC;AAEX;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,MAAM,OAAO,IAAI,CAAC,CAAC;AAEzD;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAelD,CAAC"}