@kud/gh-ink 0.15.0 → 0.16.1
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/index.js +30 -6
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1566,11 +1566,11 @@ var RepoHeaderRow = ({ repo, gap }) => {
|
|
|
1566
1566
|
const fill = Math.max(4, 46 - label.length);
|
|
1567
1567
|
return /* @__PURE__ */ jsx(Box, { marginTop: gap ? 1 : 0, children: /* @__PURE__ */ jsx(Text2, { dimColor: true, children: " " + label + "\u2500".repeat(fill) }) });
|
|
1568
1568
|
};
|
|
1569
|
-
var MERGED_HOLD_MS =
|
|
1569
|
+
var MERGED_HOLD_MS = 5e3;
|
|
1570
1570
|
var MERGED_FRAME_MS = 150;
|
|
1571
1571
|
var MERGED_FRAMES = ["\u2726", "\u2727", "\u2736", "\u2727"];
|
|
1572
1572
|
var MERGED_COLOUR = "#A371F7";
|
|
1573
|
-
var TRANSIT_HOLD_MS =
|
|
1573
|
+
var TRANSIT_HOLD_MS = 7e3;
|
|
1574
1574
|
var NO_TRANSIENTS = /* @__PURE__ */ new Map();
|
|
1575
1575
|
var TRANSIT_OUT_FRAMES = ["\u25C9", "\u25CE", "\u25CB", "\xB7"];
|
|
1576
1576
|
var TRANSIT_IN_FRAMES = ["\xB7", "\u25CB", "\u25CE", "\u25C9"];
|
|
@@ -1584,6 +1584,8 @@ var TRANSIT_LABEL = {
|
|
|
1584
1584
|
out: "GONE",
|
|
1585
1585
|
changed: "UPDATED"
|
|
1586
1586
|
};
|
|
1587
|
+
var TAB_MARK = "\u25CF";
|
|
1588
|
+
var tabLabel = (label, marked, id) => marked.size === 0 ? label : `${marked.has(id) ? TAB_MARK : " "} ${label}`;
|
|
1587
1589
|
var ItemRow = ({
|
|
1588
1590
|
item,
|
|
1589
1591
|
active,
|
|
@@ -1616,12 +1618,27 @@ var ItemRow = ({
|
|
|
1616
1618
|
] });
|
|
1617
1619
|
if (item.kind === "task") {
|
|
1618
1620
|
const note = item.note ?? "";
|
|
1619
|
-
const
|
|
1621
|
+
const transitIcon = !transient ? " " : transient === "out" ? TRANSIT_OUT_FRAMES[sparkFrame % TRANSIT_OUT_FRAMES.length] : transient === "in" ? TRANSIT_IN_FRAMES[sparkFrame % TRANSIT_IN_FRAMES.length] : "\u25C9";
|
|
1622
|
+
const transitLabel2 = transient ? TRANSIT_LABEL[transient] : "";
|
|
1623
|
+
const titleMax2 = Math.max(
|
|
1624
|
+
20,
|
|
1625
|
+
COLS - item.key.length - note.length - transitLabel2.length - 12
|
|
1626
|
+
);
|
|
1620
1627
|
return /* @__PURE__ */ jsxs(Box, { marginTop: gap ? 1 : 0, children: [
|
|
1621
1628
|
/* @__PURE__ */ jsx(Text2, { color: "cyan", children: active ? "\u276F " : " " }),
|
|
1629
|
+
/* @__PURE__ */ jsx(Text2, { bold: true, color: transient ? TRANSIT_COLOUR[transient] : void 0, children: transitIcon + " " }),
|
|
1622
1630
|
/* @__PURE__ */ jsx(Text2, { color: "#FF8700", bold: active, children: item.key + " " }),
|
|
1623
|
-
/* @__PURE__ */ jsx(
|
|
1624
|
-
|
|
1631
|
+
/* @__PURE__ */ jsx(
|
|
1632
|
+
Text2,
|
|
1633
|
+
{
|
|
1634
|
+
bold: active || transient === "in",
|
|
1635
|
+
dimColor: transient === "out",
|
|
1636
|
+
strikethrough: transient === "out",
|
|
1637
|
+
children: truncate(item.summary, titleMax2)
|
|
1638
|
+
}
|
|
1639
|
+
),
|
|
1640
|
+
note ? /* @__PURE__ */ jsx(Text2, { dimColor: true, children: ` ${note}` }) : null,
|
|
1641
|
+
transitLabel2 ? /* @__PURE__ */ jsx(Text2, { bold: true, color: TRANSIT_COLOUR[transient], children: " " + transitLabel2 }) : null
|
|
1625
1642
|
] });
|
|
1626
1643
|
}
|
|
1627
1644
|
const { glyph: healthIcon, color: healthColor2 } = healthDisplay[item.health];
|
|
@@ -2050,6 +2067,13 @@ var BrowseScreen = ({
|
|
|
2050
2067
|
setFlash(msg);
|
|
2051
2068
|
setTimeout(() => setFlash(null), 2e3);
|
|
2052
2069
|
};
|
|
2070
|
+
const markedTabs = useMemo(() => {
|
|
2071
|
+
const out = /* @__PURE__ */ new Set();
|
|
2072
|
+
if (!transients?.size) return out;
|
|
2073
|
+
for (const s of localSections)
|
|
2074
|
+
if (s.items.some((item) => transientOf(transients, item))) out.add(s.id);
|
|
2075
|
+
return out;
|
|
2076
|
+
}, [localSections, transients]);
|
|
2053
2077
|
const [sparkFrame, setSparkFrame] = useState(0);
|
|
2054
2078
|
const sparkling = (mergedUrls?.length ?? 0) > 0 || !!transients?.size && section.items.some((item) => transientOf(transients, item));
|
|
2055
2079
|
useEffect(() => {
|
|
@@ -2400,7 +2424,7 @@ var BrowseScreen = ({
|
|
|
2400
2424
|
active: section.id,
|
|
2401
2425
|
items: localSections.map((s) => ({
|
|
2402
2426
|
value: s.id,
|
|
2403
|
-
label: s.label,
|
|
2427
|
+
label: tabLabel(s.label, markedTabs, s.id),
|
|
2404
2428
|
count: topLevelCount(s)
|
|
2405
2429
|
}))
|
|
2406
2430
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kud/gh-ink",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.1",
|
|
4
4
|
"description": "Ink components for rendering GitHub PR review comments and health — controlled, presentation-only, built on @kud/ink-ui and fed by @kud/gh.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|