@pokit/tabs-core 0.0.21 → 0.0.23

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.
@@ -7,8 +7,9 @@
7
7
  /**
8
8
  * Callbacks for keyboard actions in the tabbed view.
9
9
  */
10
+ export type QuitReason = 'user' | 'interrupt';
10
11
  export type KeyboardCallbacks = {
11
- onQuit: () => void;
12
+ onQuit: (reason: QuitReason) => void;
12
13
  onQuitRequest: () => void;
13
14
  onRestart: (index: number) => void;
14
15
  onKill: (index: number) => void;
@@ -58,6 +59,7 @@ export type KeyboardAction = {
58
59
  data: string;
59
60
  } | {
60
61
  type: 'quit';
62
+ reason: QuitReason;
61
63
  } | {
62
64
  type: 'quit-request';
63
65
  } | {
@@ -97,7 +99,7 @@ export declare function processKeyEvent(event: NormalizedKeyEvent, state: Keyboa
97
99
  * may have stale closures. The refs always point to the current callback.
98
100
  */
99
101
  export declare function useKeyboardCallbackRefs(callbacks: KeyboardCallbacks): {
100
- onQuitRef: import("react").RefObject<() => void>;
102
+ onQuitRef: import("react").RefObject<(reason: QuitReason) => void>;
101
103
  onQuitRequestRef: import("react").RefObject<() => void>;
102
104
  onRestartRef: import("react").RefObject<(index: number) => void>;
103
105
  onKillRef: import("react").RefObject<(index: number) => void>;
@@ -1 +1 @@
1
- {"version":3,"file":"use-keyboard-handler.d.ts","sourceRoot":"","sources":["../../src/hooks/use-keyboard-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-keyboard-handler.d.ts","sourceRoot":"","sources":["../../src/hooks/use-keyboard-handler.ts"],"names":[],"mappings":"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"}
@@ -42,7 +42,7 @@ export function processKeyEvent(event, state, viewHeight) {
42
42
  // Quit confirmation handling
43
43
  if (quitConfirmPending) {
44
44
  if (char === 'q' || name === 'q') {
45
- return { type: 'quit' };
45
+ return { type: 'quit', reason: 'user' };
46
46
  }
47
47
  return { type: 'cancel-quit' };
48
48
  }
@@ -52,7 +52,7 @@ export function processKeyEvent(event, state, viewHeight) {
52
52
  }
53
53
  // Ctrl+C for instant quit
54
54
  if ((char === 'c' || name === 'c') && ctrl) {
55
- return { type: 'quit' };
55
+ return { type: 'quit', reason: 'interrupt' };
56
56
  }
57
57
  // Enter focus/input mode
58
58
  if (char === 'i' || name === 'i') {
@@ -190,7 +190,7 @@ export function executeKeyboardAction(action, refs, scrollBy, switchTab, nextTab
190
190
  refs.onSendInputRef.current(action.data);
191
191
  break;
192
192
  case 'quit':
193
- refs.onQuitRef.current();
193
+ refs.onQuitRef.current(action.reason);
194
194
  break;
195
195
  case 'quit-request':
196
196
  case 'cancel-quit':
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pokit/tabs-core",
3
- "version": "0.0.21",
3
+ "version": "0.0.23",
4
4
  "description": "Core tab management utilities for pok CLI applications",
5
5
  "keywords": [
6
6
  "cli",
@@ -45,7 +45,7 @@
45
45
  },
46
46
  "peerDependencies": {
47
47
  "react": "^18.0.0 || ^19.0.0",
48
- "@pokit/core": "0.0.21"
48
+ "@pokit/core": "0.0.23"
49
49
  },
50
50
  "peerDependenciesMeta": {
51
51
  "react": {
@@ -56,7 +56,7 @@
56
56
  "@types/bun": "latest",
57
57
  "@types/react": "^19.2.0",
58
58
  "react": "^19.2.0",
59
- "@pokit/core": "0.0.21"
59
+ "@pokit/core": "0.0.23"
60
60
  },
61
61
  "engines": {
62
62
  "bun": ">=1.0.0"
@@ -11,8 +11,10 @@ import { KEY_SEQUENCES, ctrlKeyToSequence } from '../constants/keyboard.js';
11
11
  /**
12
12
  * Callbacks for keyboard actions in the tabbed view.
13
13
  */
14
+ export type QuitReason = 'user' | 'interrupt';
15
+
14
16
  export type KeyboardCallbacks = {
15
- onQuit: () => void;
17
+ onQuit: (reason: QuitReason) => void;
16
18
  onQuitRequest: () => void;
17
19
  onRestart: (index: number) => void;
18
20
  onKill: (index: number) => void;
@@ -59,7 +61,7 @@ export type KeyboardAction =
59
61
  | { type: 'close-help' }
60
62
  | { type: 'exit-focus-mode' }
61
63
  | { type: 'send-input'; data: string }
62
- | { type: 'quit' }
64
+ | { type: 'quit'; reason: QuitReason }
63
65
  | { type: 'quit-request' }
64
66
  | { type: 'cancel-quit' }
65
67
  | { type: 'enter-focus-mode' }
@@ -118,7 +120,7 @@ export function processKeyEvent(
118
120
  // Quit confirmation handling
119
121
  if (quitConfirmPending) {
120
122
  if (char === 'q' || name === 'q') {
121
- return { type: 'quit' };
123
+ return { type: 'quit', reason: 'user' };
122
124
  }
123
125
  return { type: 'cancel-quit' };
124
126
  }
@@ -130,7 +132,7 @@ export function processKeyEvent(
130
132
 
131
133
  // Ctrl+C for instant quit
132
134
  if ((char === 'c' || name === 'c') && ctrl) {
133
- return { type: 'quit' };
135
+ return { type: 'quit', reason: 'interrupt' };
134
136
  }
135
137
 
136
138
  // Enter focus/input mode
@@ -284,7 +286,7 @@ export function executeKeyboardAction(
284
286
  refs.onSendInputRef.current(action.data);
285
287
  break;
286
288
  case 'quit':
287
- refs.onQuitRef.current();
289
+ refs.onQuitRef.current(action.reason);
288
290
  break;
289
291
  case 'quit-request':
290
292
  case 'cancel-quit':