@kud/gh-cockpit 0.11.7 → 0.11.10

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, Text, useWindowSize, useInput } from 'ink';
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__ */ jsxs(Box, { marginBottom: 1, children: [
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(LegacyDrillView, { title, subtitle, hints, children });
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__ */ jsxs(Box, { marginTop: 1, children: [
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 })
@@ -1,4 +1,4 @@
1
- import { AiLauncher, seedPromptFor, CopyPromptNotice } from '../chunk-CSQKL753.js';
1
+ import { AiLauncher, seedPromptFor, CopyPromptNotice } from '../chunk-E4OBM2QU.js';
2
2
  import { useEffect } from 'react';
3
3
  import { jsx } from 'react/jsx-runtime';
4
4
 
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-CSQKL753.js';
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-CSQKL753.js';
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.7",
3
+ "version": "0.11.10",
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.20.0",
57
- "@kud/gh-ink": "0.69.4",
58
- "@kud/ink-ui": "0.34.0",
56
+ "@kud/gh": "0.21.0",
57
+ "@kud/gh-ink": "0.72.0",
58
+ "@kud/ink-ui": "0.35.0",
59
59
  "zx": "8.8.5",
60
- "@kud/gh-workflow": "0.14.1"
60
+ "@kud/gh-workflow": "0.16.0"
61
61
  },
62
62
  "devDependencies": {
63
63
  "@types/node": "22.20.1",