@pokit/tabs-opentui 0.0.22 → 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.
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAwB,QAAQ,EAAE,MAAM,aAAa,CAAC;AAK/E;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,WAAW,CA2G/C;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,QAAQ,EACb,OAAO,GAAE,mBAAwB,GAChC;IAAE,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,CAyGzB"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAwB,QAAQ,EAAE,MAAM,aAAa,CAAC;AAK/E;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,WAAW,CA8G/C;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,QAAQ,EACb,OAAO,GAAE,mBAAwB,GAChC;IAAE,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,CA4GzB"}
package/dist/adapter.js CHANGED
@@ -88,8 +88,11 @@ export function createTabsAdapter() {
88
88
  const handleFatalError = () => {
89
89
  cleanup();
90
90
  };
91
- const handleExit = () => {
91
+ const handleExit = (code) => {
92
92
  cleanup();
93
+ if (code === 130) {
94
+ process.exit(130);
95
+ }
93
96
  };
94
97
  // Use React.createElement to bypass OpenTUI's JSX type constraints for class components
95
98
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -173,6 +176,9 @@ export function createEventAdapter(bus, options = {}) {
173
176
  const handleExit = (code) => {
174
177
  cleanup();
175
178
  options.onExit?.(code);
179
+ if (code === 130) {
180
+ process.exit(130);
181
+ }
176
182
  };
177
183
  // Handle fatal errors from error boundary
178
184
  const handleFatalError = () => {
@@ -9,7 +9,7 @@ type TabbedViewProps = {
9
9
  tabs: TabProcess[];
10
10
  activeIndex: number;
11
11
  onActiveIndexChange: (index: number) => void;
12
- onQuit: () => void;
12
+ onQuit: (reason: 'user' | 'interrupt') => void;
13
13
  onQuitRequest: () => void;
14
14
  onRestart: (index: number) => void;
15
15
  onKill: (index: number) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"tabbed-view.d.ts","sourceRoot":"","sources":["../src/tabbed-view.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAY,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAWnD,KAAK,eAAe,GAAG;IACrB,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,mBAAmB,GAAG,IAAI,KAAK,IAAI,CAAC;IACtD,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB,CAAC;AA6JF,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,WAAW,EACX,mBAAmB,EACnB,MAAM,EACN,aAAa,EACb,SAAS,EACT,MAAM,EACN,kBAAkB,EAClB,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,SAAS,EACT,WAAW,EACX,YAAY,EACZ,WAAW,GACZ,EAAE,eAAe,GAAG,KAAK,CAAC,SAAS,CA+FnC"}
1
+ {"version":3,"file":"tabbed-view.d.ts","sourceRoot":"","sources":["../src/tabbed-view.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAY,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAWnD,KAAK,eAAe,GAAG;IACrB,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,KAAK,IAAI,CAAC;IAC/C,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,mBAAmB,GAAG,IAAI,KAAK,IAAI,CAAC;IACtD,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB,CAAC;AA6JF,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,WAAW,EACX,mBAAmB,EACnB,MAAM,EACN,aAAa,EACb,SAAS,EACT,MAAM,EACN,kBAAkB,EAClB,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,SAAS,EACT,WAAW,EACX,YAAY,EACZ,WAAW,GACZ,EAAE,eAAe,GAAG,KAAK,CAAC,SAAS,CA+FnC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tabs-app.d.ts","sourceRoot":"","sources":["../src/tabs-app.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAYH,OAAO,KAAK,EAAE,OAAO,EAAc,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAS/C,KAAK,YAAY,GAAG;IAClB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC,CAAC;AAOF,wBAAgB,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,YAAY,GAAG,KAAK,CAAC,SAAS,CAiWjF"}
1
+ {"version":3,"file":"tabs-app.d.ts","sourceRoot":"","sources":["../src/tabs-app.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAYH,OAAO,KAAK,EAAE,OAAO,EAAc,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAS/C,KAAK,YAAY,GAAG;IAClB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC,CAAC;AAOF,wBAAgB,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,YAAY,GAAG,KAAK,CAAC,SAAS,CAoWjF"}
package/dist/tabs-app.js CHANGED
@@ -261,9 +261,9 @@ export function TabsApp({ items, options, onExit }) {
261
261
  const handleQuitRequest = useCallback(() => {
262
262
  setQuitConfirmPending((prev) => !prev);
263
263
  }, []);
264
- const handleQuit = useCallback(() => {
264
+ const handleQuit = useCallback((reason) => {
265
265
  killAll();
266
- onExit(0);
266
+ onExit(reason === 'interrupt' ? 130 : 0);
267
267
  }, [killAll, onExit]);
268
268
  const handleEnterFocusMode = useCallback(() => {
269
269
  const proc = processesRef.current[activeIndex];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pokit/tabs-opentui",
3
- "version": "0.0.22",
3
+ "version": "0.0.23",
4
4
  "description": "OpenTUI-based tab renderer for pok CLI applications",
5
5
  "keywords": [
6
6
  "cli",
@@ -53,12 +53,12 @@
53
53
  "devDependencies": {
54
54
  "@types/bun": "latest",
55
55
  "@types/react": "^19.2.0",
56
- "@pokit/core": "0.0.22",
57
- "@pokit/tabs-core": "0.0.22"
56
+ "@pokit/core": "0.0.23",
57
+ "@pokit/tabs-core": "0.0.23"
58
58
  },
59
59
  "peerDependencies": {
60
- "@pokit/core": "0.0.22",
61
- "@pokit/tabs-core": "0.0.22"
60
+ "@pokit/core": "0.0.23",
61
+ "@pokit/tabs-core": "0.0.23"
62
62
  },
63
63
  "engines": {
64
64
  "bun": ">=1.0.0"
package/src/adapter.tsx CHANGED
@@ -107,8 +107,11 @@ export function createTabsAdapter(): TabsAdapter {
107
107
  cleanup();
108
108
  };
109
109
 
110
- const handleExit = () => {
110
+ const handleExit = (code: number) => {
111
111
  cleanup();
112
+ if (code === 130) {
113
+ process.exit(130);
114
+ }
112
115
  };
113
116
 
114
117
  // Use React.createElement to bypass OpenTUI's JSX type constraints for class components
@@ -219,6 +222,9 @@ export function createEventAdapter(
219
222
  const handleExit = (code: number) => {
220
223
  cleanup();
221
224
  options.onExit?.(code);
225
+ if (code === 130) {
226
+ process.exit(130);
227
+ }
222
228
  };
223
229
 
224
230
  // Handle fatal errors from error boundary
@@ -21,7 +21,7 @@ type TabbedViewProps = {
21
21
  tabs: TabProcess[];
22
22
  activeIndex: number;
23
23
  onActiveIndexChange: (index: number) => void;
24
- onQuit: () => void;
24
+ onQuit: (reason: 'user' | 'interrupt') => void;
25
25
  onQuitRequest: () => void;
26
26
  onRestart: (index: number) => void;
27
27
  onKill: (index: number) => void;
package/src/tabs-app.tsx CHANGED
@@ -324,10 +324,13 @@ export function TabsApp({ items, options, onExit }: TabsAppProps): React.ReactNo
324
324
  setQuitConfirmPending((prev) => !prev);
325
325
  }, []);
326
326
 
327
- const handleQuit = useCallback(() => {
328
- killAll();
329
- onExit(0);
330
- }, [killAll, onExit]);
327
+ const handleQuit = useCallback(
328
+ (reason: 'user' | 'interrupt') => {
329
+ killAll();
330
+ onExit(reason === 'interrupt' ? 130 : 0);
331
+ },
332
+ [killAll, onExit]
333
+ );
331
334
 
332
335
  const handleEnterFocusMode = useCallback(() => {
333
336
  const proc = processesRef.current[activeIndex];