@pokit/tabs-ink 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.
- package/dist/adapter.d.ts.map +1 -1
- package/dist/adapter.js +11 -1
- package/dist/tabbed-view.d.ts +1 -1
- package/dist/tabbed-view.d.ts.map +1 -1
- package/dist/tabs-app.d.ts.map +1 -1
- package/dist/tabs-app.js +2 -2
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/adapter.tsx +11 -1
- package/src/tabbed-view.tsx +1 -1
- package/src/tabs-app.tsx +7 -4
- package/src/types.ts +1 -1
package/dist/adapter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAwB,QAAQ,EAAE,MAAM,aAAa,CAAC;AAK/E;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,WAAW,
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAwB,QAAQ,EAAE,MAAM,aAAa,CAAC;AAK/E;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,WAAW,CAoH/C;AAMD,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,CAgFzB"}
|
package/dist/adapter.js
CHANGED
|
@@ -49,6 +49,7 @@ export function createTabsAdapter() {
|
|
|
49
49
|
return;
|
|
50
50
|
resolved = true;
|
|
51
51
|
// Remove signal handlers
|
|
52
|
+
process.removeListener('SIGINT', handleSignal);
|
|
52
53
|
process.removeListener('SIGTERM', handleSignal);
|
|
53
54
|
process.removeListener('SIGQUIT', handleSignal);
|
|
54
55
|
process.removeListener('uncaughtException', handleUncaughtException);
|
|
@@ -75,6 +76,7 @@ export function createTabsAdapter() {
|
|
|
75
76
|
process.exit(1);
|
|
76
77
|
};
|
|
77
78
|
// Register signal handlers
|
|
79
|
+
process.on('SIGINT', handleSignal);
|
|
78
80
|
process.on('SIGTERM', handleSignal);
|
|
79
81
|
process.on('SIGQUIT', handleSignal);
|
|
80
82
|
process.on('uncaughtException', handleUncaughtException);
|
|
@@ -82,8 +84,11 @@ export function createTabsAdapter() {
|
|
|
82
84
|
const handleFatalError = () => {
|
|
83
85
|
cleanup();
|
|
84
86
|
};
|
|
85
|
-
const result = render(_jsx(TabsErrorBoundary, { onFatalError: handleFatalError, children: _jsx(TabsApp, { items: items, options: options, onExit: () => {
|
|
87
|
+
const result = render(_jsx(TabsErrorBoundary, { onFatalError: handleFatalError, children: _jsx(TabsApp, { items: items, options: options, onExit: (code) => {
|
|
86
88
|
cleanup();
|
|
89
|
+
if (code === 130) {
|
|
90
|
+
process.exit(130);
|
|
91
|
+
}
|
|
87
92
|
} }) }), {
|
|
88
93
|
exitOnCtrlC: false, // We handle quit ourselves
|
|
89
94
|
incrementalRendering: true, // Only update changed lines to reduce flicker
|
|
@@ -123,6 +128,7 @@ export function createEventAdapter(bus, options = {}) {
|
|
|
123
128
|
return;
|
|
124
129
|
isCleanedUp = true;
|
|
125
130
|
// Remove signal handlers
|
|
131
|
+
process.removeListener('SIGINT', handleSignal);
|
|
126
132
|
process.removeListener('SIGTERM', handleSignal);
|
|
127
133
|
process.removeListener('SIGQUIT', handleSignal);
|
|
128
134
|
process.removeListener('uncaughtException', handleUncaughtException);
|
|
@@ -148,12 +154,16 @@ export function createEventAdapter(bus, options = {}) {
|
|
|
148
154
|
process.exit(1);
|
|
149
155
|
};
|
|
150
156
|
// Register signal handlers
|
|
157
|
+
process.on('SIGINT', handleSignal);
|
|
151
158
|
process.on('SIGTERM', handleSignal);
|
|
152
159
|
process.on('SIGQUIT', handleSignal);
|
|
153
160
|
process.on('uncaughtException', handleUncaughtException);
|
|
154
161
|
const handleExit = (code) => {
|
|
155
162
|
cleanup();
|
|
156
163
|
options.onExit?.(code);
|
|
164
|
+
if (code === 130) {
|
|
165
|
+
process.exit(130);
|
|
166
|
+
}
|
|
157
167
|
};
|
|
158
168
|
// Handle fatal errors from error boundary
|
|
159
169
|
const handleFatalError = () => {
|
package/dist/tabbed-view.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ type TabbedViewProps = {
|
|
|
3
3
|
tabs: TabProcess[];
|
|
4
4
|
activeIndex: number;
|
|
5
5
|
onActiveIndexChange: (index: number) => void;
|
|
6
|
-
onQuit: () => void;
|
|
6
|
+
onQuit: (reason: 'user' | 'interrupt') => void;
|
|
7
7
|
onQuitRequest: () => void;
|
|
8
8
|
onRestart: (index: number) => void;
|
|
9
9
|
onKill: (index: number) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabbed-view.d.ts","sourceRoot":"","sources":["../src/tabbed-view.tsx"],"names":[],"mappings":"AACA,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;
|
|
1
|
+
{"version":3,"file":"tabbed-view.d.ts","sourceRoot":"","sources":["../src/tabbed-view.tsx"],"names":[],"mappings":"AACA,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,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB,CAAC;AAyMF,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,WAAW,EACX,YAAY,EACZ,WAAW,GACZ,EAAE,eAAe,2CAqGjB"}
|
package/dist/tabs-app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs-app.d.ts","sourceRoot":"","sources":["../src/tabs-app.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAIxD,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,
|
|
1
|
+
{"version":3,"file":"tabs-app.d.ts","sourceRoot":"","sources":["../src/tabs-app.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAIxD,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,2CAkS/D"}
|
package/dist/tabs-app.js
CHANGED
|
@@ -200,9 +200,9 @@ export function TabsApp({ items, options, onExit }) {
|
|
|
200
200
|
const handleQuitRequest = useCallback(() => {
|
|
201
201
|
setQuitConfirmPending((prev) => !prev);
|
|
202
202
|
}, []);
|
|
203
|
-
const handleQuit = useCallback(() => {
|
|
203
|
+
const handleQuit = useCallback((reason) => {
|
|
204
204
|
killAll();
|
|
205
|
-
onExit(0);
|
|
205
|
+
onExit(reason === 'interrupt' ? 130 : 0);
|
|
206
206
|
}, [killAll, onExit]);
|
|
207
207
|
const handleEnterFocusMode = useCallback(() => {
|
|
208
208
|
const proc = processesRef.current[activeIndex];
|
package/dist/types.d.ts
CHANGED
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAMrE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAMpD;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG;IACxC,4DAA4D;IAC5D,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAMrE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAMpD;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG;IACxC,4DAA4D;IAC5D,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,KAAK,IAAI,CAAC;IAC/C,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pokit/tabs-ink",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.23",
|
|
4
4
|
"description": "Ink-based tab renderer for pok CLI applications",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cli",
|
|
@@ -51,12 +51,12 @@
|
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"@types/bun": "latest",
|
|
53
53
|
"@types/react": "^19.2.0",
|
|
54
|
-
"@pokit/core": "0.0.
|
|
55
|
-
"@pokit/tabs-core": "0.0.
|
|
54
|
+
"@pokit/core": "0.0.23",
|
|
55
|
+
"@pokit/tabs-core": "0.0.23"
|
|
56
56
|
},
|
|
57
57
|
"peerDependencies": {
|
|
58
|
-
"@pokit/core": "0.0.
|
|
59
|
-
"@pokit/tabs-core": "0.0.
|
|
58
|
+
"@pokit/core": "0.0.23",
|
|
59
|
+
"@pokit/tabs-core": "0.0.23"
|
|
60
60
|
},
|
|
61
61
|
"engines": {
|
|
62
62
|
"bun": ">=1.0.0"
|
package/src/adapter.tsx
CHANGED
|
@@ -57,6 +57,7 @@ export function createTabsAdapter(): TabsAdapter {
|
|
|
57
57
|
resolved = true;
|
|
58
58
|
|
|
59
59
|
// Remove signal handlers
|
|
60
|
+
process.removeListener('SIGINT', handleSignal);
|
|
60
61
|
process.removeListener('SIGTERM', handleSignal);
|
|
61
62
|
process.removeListener('SIGQUIT', handleSignal);
|
|
62
63
|
process.removeListener('uncaughtException', handleUncaughtException);
|
|
@@ -87,6 +88,7 @@ export function createTabsAdapter(): TabsAdapter {
|
|
|
87
88
|
};
|
|
88
89
|
|
|
89
90
|
// Register signal handlers
|
|
91
|
+
process.on('SIGINT', handleSignal);
|
|
90
92
|
process.on('SIGTERM', handleSignal);
|
|
91
93
|
process.on('SIGQUIT', handleSignal);
|
|
92
94
|
process.on('uncaughtException', handleUncaughtException);
|
|
@@ -101,8 +103,11 @@ export function createTabsAdapter(): TabsAdapter {
|
|
|
101
103
|
<TabsApp
|
|
102
104
|
items={items}
|
|
103
105
|
options={options}
|
|
104
|
-
onExit={() => {
|
|
106
|
+
onExit={(code) => {
|
|
105
107
|
cleanup();
|
|
108
|
+
if (code === 130) {
|
|
109
|
+
process.exit(130);
|
|
110
|
+
}
|
|
106
111
|
}}
|
|
107
112
|
/>
|
|
108
113
|
</TabsErrorBoundary>,
|
|
@@ -164,6 +169,7 @@ export function createEventAdapter(
|
|
|
164
169
|
isCleanedUp = true;
|
|
165
170
|
|
|
166
171
|
// Remove signal handlers
|
|
172
|
+
process.removeListener('SIGINT', handleSignal);
|
|
167
173
|
process.removeListener('SIGTERM', handleSignal);
|
|
168
174
|
process.removeListener('SIGQUIT', handleSignal);
|
|
169
175
|
process.removeListener('uncaughtException', handleUncaughtException);
|
|
@@ -193,6 +199,7 @@ export function createEventAdapter(
|
|
|
193
199
|
};
|
|
194
200
|
|
|
195
201
|
// Register signal handlers
|
|
202
|
+
process.on('SIGINT', handleSignal);
|
|
196
203
|
process.on('SIGTERM', handleSignal);
|
|
197
204
|
process.on('SIGQUIT', handleSignal);
|
|
198
205
|
process.on('uncaughtException', handleUncaughtException);
|
|
@@ -200,6 +207,9 @@ export function createEventAdapter(
|
|
|
200
207
|
const handleExit = (code: number) => {
|
|
201
208
|
cleanup();
|
|
202
209
|
options.onExit?.(code);
|
|
210
|
+
if (code === 130) {
|
|
211
|
+
process.exit(130);
|
|
212
|
+
}
|
|
203
213
|
};
|
|
204
214
|
|
|
205
215
|
// Handle fatal errors from error boundary
|
package/src/tabbed-view.tsx
CHANGED
|
@@ -14,7 +14,7 @@ type TabbedViewProps = {
|
|
|
14
14
|
tabs: TabProcess[];
|
|
15
15
|
activeIndex: number;
|
|
16
16
|
onActiveIndexChange: (index: number) => void;
|
|
17
|
-
onQuit: () => void;
|
|
17
|
+
onQuit: (reason: 'user' | 'interrupt') => void;
|
|
18
18
|
onQuitRequest: () => void;
|
|
19
19
|
onRestart: (index: number) => void;
|
|
20
20
|
onKill: (index: number) => void;
|
package/src/tabs-app.tsx
CHANGED
|
@@ -251,10 +251,13 @@ export function TabsApp({ items, options, onExit }: TabsAppProps) {
|
|
|
251
251
|
setQuitConfirmPending((prev) => !prev);
|
|
252
252
|
}, []);
|
|
253
253
|
|
|
254
|
-
const handleQuit = useCallback(
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
254
|
+
const handleQuit = useCallback(
|
|
255
|
+
(reason: 'user' | 'interrupt') => {
|
|
256
|
+
killAll();
|
|
257
|
+
onExit(reason === 'interrupt' ? 130 : 0);
|
|
258
|
+
},
|
|
259
|
+
[killAll, onExit]
|
|
260
|
+
);
|
|
258
261
|
|
|
259
262
|
const handleEnterFocusMode = useCallback(() => {
|
|
260
263
|
const proc = processesRef.current[activeIndex];
|
package/src/types.ts
CHANGED