@kud/gh-cockpit 0.11.8 → 0.11.11
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,14 +1,14 @@
|
|
|
1
1
|
import { inboxConfig, useChrome, clipboard, buildCheckoutCmd, runHere, openInTab, runInPane, runInPaneHorizontal } from '@kud/gh-ink';
|
|
2
|
-
export { ActionMenu, App, COLS, CiStatusLine, CommentsPanel, HealthPanel, MIN_SIDEBAR_COLS, NEEDS_YOU_SECTION, PIN_MARK, PrRow, SIDEBAR_COLS, SidePanel, StatusStripLine, ageLabel, bandOf, budgetNotice, buildActions, buildCheckoutCmd, checkoutDirs, clipboard, configureInbox, counts, drillCmd, explainGhAction, explainItem, filterByOrigin, filterByRepos, filterBySearch, fitCount, gapsAbove, healthColor, healthDisplay, healthGlyph, healthLegend, impliedLabels, inboxConfig, insertRepoHeaders, isMenuGap, itermRun, jumpToRepo, jumpToRepoPane, labelPriority, layoutGHItems, matchesFilter, maxViewStart, menuRowsOf, menuTone, moveCursor, numberColumnsOf, openInTab, parsePatterns, profileOf, railCapacity, railHeights, railRowsOf, railWidth, railsOf, readCache, relativeTime, renderMarkdown, repoPriority, reposInSections, resetInboxConfig, resolveRepoPath, runHere, runInPane, runInPaneHorizontal, sameCiStatusState, sectionShedOf, signatureOf, sortByRecency, sortItems, stripGlyph, stripLayout, stripSignature, toCiStatusState, trailingColumnsOf, truncate, useActionMenu, useChrome, whoseMove, windowCount, withHeaders, withoutItem, workCount, writeCache } from '@kud/gh-ink';
|
|
2
|
+
export { ActionMenu, App, COLS, CiStatusLine, CommentsPanel, HealthPanel, LookupMiss, MIN_SIDEBAR_COLS, NEEDS_YOU_SECTION, PIN_MARK, PrRow, SIDEBAR_COLS, SidePanel, StatusStripLine, ageLabel, bandOf, budgetNotice, buildActions, buildCheckoutCmd, checkoutDirs, clipboard, configureInbox, counts, drillCmd, explainGhAction, explainItem, filterByOrigin, filterByRepos, filterBySearch, fitCount, gapsAbove, healthColor, healthDisplay, healthGlyph, healthLegend, impliedLabels, inboxConfig, insertRepoHeaders, isMenuGap, itermRun, jumpToRepo, jumpToRepoPane, labelPriority, layoutGHItems, matchesFilter, maxViewStart, menuRowsOf, menuTone, moveCursor, numberColumnsOf, openInTab, parsePatterns, profileOf, railCapacity, railHeights, railRowsOf, railWidth, railsOf, readCache, relativeTime, renderMarkdown, repoPriority, reposInSections, resetInboxConfig, resolveRepoPath, runHere, runInPane, runInPaneHorizontal, sameCiStatusState, sectionShedOf, signatureOf, sortByRecency, sortItems, stripGlyph, stripLayout, stripSignature, toCiStatusState, trailingColumnsOf, truncate, useActionMenu, useChrome, whoseMove, windowCount, withHeaders, withoutItem, workCount, writeCache } from '@kud/gh-ink';
|
|
3
3
|
export { toGHItem } from '@kud/gh-workflow';
|
|
4
4
|
import { mkdirSync } from 'fs';
|
|
5
5
|
import { homedir } from 'os';
|
|
6
6
|
import { join } from 'path';
|
|
7
7
|
import { computeHealth as computeHealth$1 } from '@kud/gh';
|
|
8
8
|
export { buildInboxQueries, buildInboxQuery, fetchInbox, mergeInboxData } from '@kud/gh';
|
|
9
|
-
import { Box,
|
|
10
|
-
import { Panel, colors, FooterHints, useListCursor } from '@kud/ink-ui';
|
|
11
|
-
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
9
|
+
import { Box, useWindowSize, Text, useInput } from 'ink';
|
|
10
|
+
import { Panel, colors, FooterHints, useListCursor, Pill } from '@kud/ink-ui';
|
|
11
|
+
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
12
12
|
import { $ } from 'zx';
|
|
13
13
|
import { useRef, useEffect, useState } from 'react';
|
|
14
14
|
|
|
@@ -52,9 +52,17 @@ var signalPath = () => {
|
|
|
52
52
|
return join(dir, "cockpit-dirty");
|
|
53
53
|
};
|
|
54
54
|
var SHELL_KEYS = /* @__PURE__ */ new Set(["esc", "\u232B", "q", "?"]);
|
|
55
|
+
var TitleLine = ({ subtitle, tag }) => subtitle || tag ? /* @__PURE__ */ jsxs(Box, { children: [
|
|
56
|
+
subtitle ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
57
|
+
/* @__PURE__ */ jsx(Text, { bold: true, children: "Title: " }),
|
|
58
|
+
/* @__PURE__ */ jsx(Text, { children: subtitle })
|
|
59
|
+
] }) : null,
|
|
60
|
+
tag ? /* @__PURE__ */ jsx(Box, { marginLeft: subtitle ? 2 : 0, flexShrink: 0, children: /* @__PURE__ */ jsx(Pill, { variant: "muted", tone: "soft", children: tag }) }) : null
|
|
61
|
+
] }) : null;
|
|
55
62
|
var DrillView = ({
|
|
56
63
|
title,
|
|
57
64
|
subtitle,
|
|
65
|
+
tag,
|
|
58
66
|
hints,
|
|
59
67
|
children
|
|
60
68
|
}) => {
|
|
@@ -64,18 +72,25 @@ var DrillView = ({
|
|
|
64
72
|
});
|
|
65
73
|
if (inShell) {
|
|
66
74
|
return /* @__PURE__ */ jsxs(Box, { flexDirection: "column", children: [
|
|
67
|
-
subtitle ? /* @__PURE__ */
|
|
68
|
-
/* @__PURE__ */ jsx(Text, { bold: true, children: "Title: " }),
|
|
69
|
-
/* @__PURE__ */ jsx(Text, { children: subtitle })
|
|
70
|
-
] }) : null,
|
|
75
|
+
subtitle || tag ? /* @__PURE__ */ jsx(Box, { marginBottom: 1, children: /* @__PURE__ */ jsx(TitleLine, { subtitle, tag }) }) : null,
|
|
71
76
|
children
|
|
72
77
|
] });
|
|
73
78
|
}
|
|
74
|
-
return /* @__PURE__ */ jsx(
|
|
79
|
+
return /* @__PURE__ */ jsx(
|
|
80
|
+
LegacyDrillView,
|
|
81
|
+
{
|
|
82
|
+
title,
|
|
83
|
+
subtitle,
|
|
84
|
+
tag,
|
|
85
|
+
hints,
|
|
86
|
+
children
|
|
87
|
+
}
|
|
88
|
+
);
|
|
75
89
|
};
|
|
76
90
|
var LegacyDrillView = ({
|
|
77
91
|
title,
|
|
78
92
|
subtitle,
|
|
93
|
+
tag,
|
|
79
94
|
hints,
|
|
80
95
|
children
|
|
81
96
|
}) => {
|
|
@@ -83,10 +98,7 @@ var LegacyDrillView = ({
|
|
|
83
98
|
return /* @__PURE__ */ jsx(Panel, { children: /* @__PURE__ */ jsxs(Box, { flexDirection: "column", height: rows - 2, paddingX: 1, children: [
|
|
84
99
|
/* @__PURE__ */ jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [
|
|
85
100
|
/* @__PURE__ */ jsx(Text, { color: colors.accent, bold: true, children: title }),
|
|
86
|
-
subtitle ? /* @__PURE__ */
|
|
87
|
-
/* @__PURE__ */ jsx(Text, { bold: true, children: "Title: " }),
|
|
88
|
-
/* @__PURE__ */ jsx(Text, { children: subtitle })
|
|
89
|
-
] }) : null
|
|
101
|
+
subtitle || tag ? /* @__PURE__ */ jsx(Box, { marginTop: 1, children: /* @__PURE__ */ jsx(TitleLine, { subtitle, tag }) }) : null
|
|
90
102
|
] }),
|
|
91
103
|
/* @__PURE__ */ jsx(Box, { flexDirection: "column", flexGrow: 1, children }),
|
|
92
104
|
/* @__PURE__ */ jsx(FooterHints, { hints })
|
package/dist/extensions/index.js
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { ReactNode } from 'react';
|
|
2
2
|
import { RepoFilter, InboxExtension, GHItem, NeedsYou, DetailContext } from '@kud/gh-ink';
|
|
3
3
|
export * from '@kud/gh-ink';
|
|
4
|
-
export { ActionMenu, App, COLS, CiStatusLine, CommentsPanel, HealthPanel, MIN_SIDEBAR_COLS, NEEDS_YOU_SECTION, PIN_MARK, PrRow, SIDEBAR_COLS, SidePanel, StatusStripLine, ageLabel, bandOf, budgetNotice, buildActions, buildCheckoutCmd, checkoutDirs, clipboard, configureInbox, counts, drillCmd, explainGhAction, explainItem, filterByOrigin, filterByRepos, filterBySearch, fitCount, gapsAbove, healthColor, healthDisplay, healthGlyph, healthLegend, impliedLabels, inboxConfig, insertRepoHeaders, isMenuGap, itermRun, jumpToRepo, jumpToRepoPane, labelPriority, layoutGHItems, matchesFilter, maxViewStart, menuRowsOf, menuTone, moveCursor, numberColumnsOf, openInTab, parsePatterns, profileOf, railCapacity, railHeights, railRowsOf, railWidth, railsOf, readCache, relativeTime, renderMarkdown, repoPriority, reposInSections, resetInboxConfig, resolveRepoPath, runHere, runInPane, runInPaneHorizontal, sameCiStatusState, sectionShedOf, signatureOf, sortByRecency, sortItems, stripGlyph, stripLayout, stripSignature, toCiStatusState, trailingColumnsOf, truncate, useActionMenu, useChrome, whoseMove, windowCount, withHeaders, withoutItem, workCount, writeCache } from '@kud/gh-ink';
|
|
4
|
+
export { ActionMenu, App, COLS, CiStatusLine, CommentsPanel, HealthPanel, LookupMiss, MIN_SIDEBAR_COLS, NEEDS_YOU_SECTION, PIN_MARK, PrRow, SIDEBAR_COLS, SidePanel, StatusStripLine, ageLabel, bandOf, budgetNotice, buildActions, buildCheckoutCmd, checkoutDirs, clipboard, configureInbox, counts, drillCmd, explainGhAction, explainItem, filterByOrigin, filterByRepos, filterBySearch, fitCount, gapsAbove, healthColor, healthDisplay, healthGlyph, healthLegend, impliedLabels, inboxConfig, insertRepoHeaders, isMenuGap, itermRun, jumpToRepo, jumpToRepoPane, labelPriority, layoutGHItems, matchesFilter, maxViewStart, menuRowsOf, menuTone, moveCursor, numberColumnsOf, openInTab, parsePatterns, profileOf, railCapacity, railHeights, railRowsOf, railWidth, railsOf, readCache, relativeTime, renderMarkdown, repoPriority, reposInSections, resetInboxConfig, resolveRepoPath, runHere, runInPane, runInPaneHorizontal, sameCiStatusState, sectionShedOf, signatureOf, sortByRecency, sortItems, stripGlyph, stripLayout, stripSignature, toCiStatusState, trailingColumnsOf, truncate, useActionMenu, useChrome, whoseMove, windowCount, withHeaders, withoutItem, workCount, writeCache } from '@kud/gh-ink';
|
|
5
5
|
import { Health } from '@kud/gh';
|
|
6
6
|
export { InboxRunner, InboxSource, buildInboxQueries, buildInboxQuery, fetchInbox, mergeInboxData } from '@kud/gh';
|
|
7
7
|
export { CockpitItem, toGHItem } from '@kud/gh-workflow';
|
|
@@ -160,9 +160,10 @@ declare const DecisionBlock: ({ needsYou }: {
|
|
|
160
160
|
|
|
161
161
|
declare const detailFor: (ctx: DetailContext) => React.JSX.Element;
|
|
162
162
|
|
|
163
|
-
declare const DrillView: ({ title, subtitle, hints, children, }: {
|
|
163
|
+
declare const DrillView: ({ title, subtitle, tag, hints, children, }: {
|
|
164
164
|
title: string;
|
|
165
165
|
subtitle?: string;
|
|
166
|
+
tag?: string;
|
|
166
167
|
hints: [string, string][];
|
|
167
168
|
children: React.ReactNode;
|
|
168
169
|
}) => React.JSX.Element;
|
|
@@ -188,6 +189,7 @@ declare const IssueView: ({ item, login, onBack, onRefresh, onRemove, registerPe
|
|
|
188
189
|
title?: string;
|
|
189
190
|
labels?: readonly string[];
|
|
190
191
|
needsYou?: NeedsYou;
|
|
192
|
+
notInInbox?: boolean;
|
|
191
193
|
};
|
|
192
194
|
login: string;
|
|
193
195
|
onBack: () => void;
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { useActionMenu, buildActions, AiLauncher, seedPromptFor, CopyPromptNotice, DrillView, ActionMenu, resolveRepoPath, openInTab } from './chunk-
|
|
2
|
-
export { ActionMenu, App, COLS, CiStatusLine, CommentsPanel, DrillView, HealthPanel, MIN_SIDEBAR_COLS, NEEDS_YOU_SECTION, PIN_MARK, PrRow, SIDEBAR_COLS, SidePanel, StatusStripLine, ageLabel, bandOf, budgetNotice, buildActions, buildCheckoutCmd, buildInboxQueries, buildInboxQuery, checkoutDirs, clipboard, computeHealth, configureInbox, counts, drillCmd, explainGhAction, explainItem, fetchInbox, filterByOrigin, filterByRepos, filterBySearch, fitCount, gapsAbove, healthColor, healthDisplay, healthGlyph, healthLegend, impliedLabels, inboxConfig, insertRepoHeaders, isMenuGap, itermRun, jumpToRepo, jumpToRepoPane, labelPriority, layoutGHItems, matchesFilter, maxViewStart, menuRowsOf, menuTone, mergeInboxData, moveCursor, numberColumnsOf, openInTab, parsePatterns, profileOf, railCapacity, railHeights, railRowsOf, railWidth, railsOf, readCache, registerPrompts, relativeTime, renderMarkdown, repoPriority, reposInSections, resetInboxConfig, resolveRepoPath, runHere, runInPane, runInPaneHorizontal, sameCiStatusState, sectionShedOf, signalPath, signatureOf, sortByRecency, sortItems, stripGlyph, stripLayout, stripSignature, toCiStatusState, toGHItem, trailingColumnsOf, truncate, useActionMenu, useChrome, whoseMove, windowCount, withHeaders, withRetry, withoutItem, workCount, writeCache } from './chunk-
|
|
1
|
+
import { useActionMenu, buildActions, AiLauncher, seedPromptFor, CopyPromptNotice, DrillView, ActionMenu, resolveRepoPath, openInTab } from './chunk-E4OBM2QU.js';
|
|
2
|
+
export { ActionMenu, App, COLS, CiStatusLine, CommentsPanel, DrillView, HealthPanel, LookupMiss, MIN_SIDEBAR_COLS, NEEDS_YOU_SECTION, PIN_MARK, PrRow, SIDEBAR_COLS, SidePanel, StatusStripLine, ageLabel, bandOf, budgetNotice, buildActions, buildCheckoutCmd, buildInboxQueries, buildInboxQuery, checkoutDirs, clipboard, computeHealth, configureInbox, counts, drillCmd, explainGhAction, explainItem, fetchInbox, filterByOrigin, filterByRepos, filterBySearch, fitCount, gapsAbove, healthColor, healthDisplay, healthGlyph, healthLegend, impliedLabels, inboxConfig, insertRepoHeaders, isMenuGap, itermRun, jumpToRepo, jumpToRepoPane, labelPriority, layoutGHItems, matchesFilter, maxViewStart, menuRowsOf, menuTone, mergeInboxData, moveCursor, numberColumnsOf, openInTab, parsePatterns, profileOf, railCapacity, railHeights, railRowsOf, railWidth, railsOf, readCache, registerPrompts, relativeTime, renderMarkdown, repoPriority, reposInSections, resetInboxConfig, resolveRepoPath, runHere, runInPane, runInPaneHorizontal, sameCiStatusState, sectionShedOf, signalPath, signatureOf, sortByRecency, sortItems, stripGlyph, stripLayout, stripSignature, toCiStatusState, toGHItem, trailingColumnsOf, truncate, useActionMenu, useChrome, whoseMove, windowCount, withHeaders, withRetry, withoutItem, workCount, writeCache } from './chunk-E4OBM2QU.js';
|
|
3
3
|
import { parsePatterns, HealthPanel, CommentsPanel, inboxConfig } from '@kud/gh-ink';
|
|
4
4
|
import { Box, Text, useStdin, useInput } from 'ink';
|
|
5
5
|
import { colors, useTabs, Tabs, TextInput, useListCursor, ScrollView } from '@kud/ink-ui';
|
|
@@ -715,6 +715,7 @@ var PrView = ({
|
|
|
715
715
|
{
|
|
716
716
|
title: `#${item.number} \xB7 ${item.repo}`,
|
|
717
717
|
subtitle: item.title,
|
|
718
|
+
tag: item.notInInbox ? "not in inbox" : void 0,
|
|
718
719
|
hints,
|
|
719
720
|
children: [
|
|
720
721
|
summaryCells.length ? /* @__PURE__ */ jsx(Box, { children: summaryCells.map(({ key, text }, i) => /* @__PURE__ */ jsxs(React3.Fragment, { children: [
|
|
@@ -889,6 +890,7 @@ var IssueView = ({
|
|
|
889
890
|
{
|
|
890
891
|
title: `#${item.number} \xB7 ${item.repo}`,
|
|
891
892
|
subtitle: item.title,
|
|
893
|
+
tag: item.notInInbox ? "not in inbox" : void 0,
|
|
892
894
|
hints: [
|
|
893
895
|
["\u2191\u2193", "scroll"],
|
|
894
896
|
...item.needsYou ? [
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kud/gh-cockpit",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.11",
|
|
4
4
|
"description": "A configurable GitHub cockpit for the terminal — your PRs, reviews and issues in one Ink TUI, grouped by whose move it is.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -53,11 +53,11 @@
|
|
|
53
53
|
"react": ">=19"
|
|
54
54
|
},
|
|
55
55
|
"dependencies": {
|
|
56
|
-
"@kud/gh": "0.
|
|
57
|
-
"@kud/gh-ink": "0.
|
|
58
|
-
"@kud/ink-ui": "0.
|
|
56
|
+
"@kud/gh": "0.21.0",
|
|
57
|
+
"@kud/gh-ink": "0.73.0",
|
|
58
|
+
"@kud/ink-ui": "0.36.0",
|
|
59
59
|
"zx": "8.8.5",
|
|
60
|
-
"@kud/gh-workflow": "0.
|
|
60
|
+
"@kud/gh-workflow": "0.16.0"
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
63
|
"@types/node": "22.20.1",
|