@gzeoneth/gov-tracker 0.2.1-alpha.cli-preview.f8c3a87 → 0.2.1-alpha.cli-preview.a5817b4
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/cli/cli.js +23 -5
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/lib/cli.d.ts.map +1 -1
- package/dist/cli/lib/cli.js +27 -5
- package/dist/cli/lib/cli.js.map +1 -1
- package/dist/cli/tui/App.d.ts.map +1 -1
- package/dist/cli/tui/App.js +60 -6
- package/dist/cli/tui/App.js.map +1 -1
- package/dist/cli/tui/components/CollapsibleSection.d.ts +20 -0
- package/dist/cli/tui/components/CollapsibleSection.d.ts.map +1 -0
- package/dist/cli/tui/components/CollapsibleSection.js +29 -0
- package/dist/cli/tui/components/CollapsibleSection.js.map +1 -0
- package/dist/cli/tui/components/ConfirmDialog.d.ts +14 -0
- package/dist/cli/tui/components/ConfirmDialog.d.ts.map +1 -0
- package/dist/cli/tui/components/ConfirmDialog.js +29 -0
- package/dist/cli/tui/components/ConfirmDialog.js.map +1 -0
- package/dist/cli/tui/components/CopyableText.d.ts +23 -0
- package/dist/cli/tui/components/CopyableText.d.ts.map +1 -0
- package/dist/cli/tui/components/CopyableText.js +49 -0
- package/dist/cli/tui/components/CopyableText.js.map +1 -0
- package/dist/cli/tui/components/EmptyState.d.ts +11 -0
- package/dist/cli/tui/components/EmptyState.d.ts.map +1 -0
- package/dist/cli/tui/components/EmptyState.js +34 -0
- package/dist/cli/tui/components/EmptyState.js.map +1 -0
- package/dist/cli/tui/components/ErrorDisplay.d.ts +17 -0
- package/dist/cli/tui/components/ErrorDisplay.d.ts.map +1 -0
- package/dist/cli/tui/components/ErrorDisplay.js +66 -0
- package/dist/cli/tui/components/ErrorDisplay.js.map +1 -0
- package/dist/cli/tui/components/Header.d.ts +4 -2
- package/dist/cli/tui/components/Header.d.ts.map +1 -1
- package/dist/cli/tui/components/Header.js +20 -4
- package/dist/cli/tui/components/Header.js.map +1 -1
- package/dist/cli/tui/components/KeyHelp.d.ts +11 -2
- package/dist/cli/tui/components/KeyHelp.d.ts.map +1 -1
- package/dist/cli/tui/components/KeyHelp.js +63 -9
- package/dist/cli/tui/components/KeyHelp.js.map +1 -1
- package/dist/cli/tui/components/ProposalRow.d.ts.map +1 -1
- package/dist/cli/tui/components/ProposalRow.js +46 -6
- package/dist/cli/tui/components/ProposalRow.js.map +1 -1
- package/dist/cli/tui/components/ScrollIndicator.d.ts +26 -0
- package/dist/cli/tui/components/ScrollIndicator.d.ts.map +1 -0
- package/dist/cli/tui/components/ScrollIndicator.js +59 -0
- package/dist/cli/tui/components/ScrollIndicator.js.map +1 -0
- package/dist/cli/tui/components/SearchBar.d.ts +12 -0
- package/dist/cli/tui/components/SearchBar.d.ts.map +1 -0
- package/dist/cli/tui/components/SearchBar.js +36 -0
- package/dist/cli/tui/components/SearchBar.js.map +1 -0
- package/dist/cli/tui/components/Skeleton.d.ts +22 -0
- package/dist/cli/tui/components/Skeleton.d.ts.map +1 -0
- package/dist/cli/tui/components/Skeleton.js +35 -0
- package/dist/cli/tui/components/Skeleton.js.map +1 -0
- package/dist/cli/tui/components/Spinner.d.ts +10 -0
- package/dist/cli/tui/components/Spinner.d.ts.map +1 -0
- package/dist/cli/tui/components/Spinner.js +24 -0
- package/dist/cli/tui/components/Spinner.js.map +1 -0
- package/dist/cli/tui/components/StageProgress.d.ts +12 -0
- package/dist/cli/tui/components/StageProgress.d.ts.map +1 -0
- package/dist/cli/tui/components/StageProgress.js +72 -0
- package/dist/cli/tui/components/StageProgress.js.map +1 -0
- package/dist/cli/tui/components/StageRow.d.ts.map +1 -1
- package/dist/cli/tui/components/StageRow.js +33 -10
- package/dist/cli/tui/components/StageRow.js.map +1 -1
- package/dist/cli/tui/components/StatusBar.d.ts +12 -0
- package/dist/cli/tui/components/StatusBar.d.ts.map +1 -0
- package/dist/cli/tui/components/StatusBar.js +14 -0
- package/dist/cli/tui/components/StatusBar.js.map +1 -0
- package/dist/cli/tui/components/Timeline.d.ts +12 -0
- package/dist/cli/tui/components/Timeline.d.ts.map +1 -0
- package/dist/cli/tui/components/Timeline.js +91 -0
- package/dist/cli/tui/components/Timeline.js.map +1 -0
- package/dist/cli/tui/components/Toast.d.ts +13 -0
- package/dist/cli/tui/components/Toast.d.ts.map +1 -0
- package/dist/cli/tui/components/Toast.js +35 -0
- package/dist/cli/tui/components/Toast.js.map +1 -0
- package/dist/cli/tui/components/TrackingProgress.d.ts +24 -0
- package/dist/cli/tui/components/TrackingProgress.d.ts.map +1 -0
- package/dist/cli/tui/components/TrackingProgress.js +82 -0
- package/dist/cli/tui/components/TrackingProgress.js.map +1 -0
- package/dist/cli/tui/components/ViewLayout.d.ts +9 -1
- package/dist/cli/tui/components/ViewLayout.d.ts.map +1 -1
- package/dist/cli/tui/components/ViewLayout.js +43 -7
- package/dist/cli/tui/components/ViewLayout.js.map +1 -1
- package/dist/cli/tui/components/VotingStats.d.ts +11 -0
- package/dist/cli/tui/components/VotingStats.d.ts.map +1 -0
- package/dist/cli/tui/components/VotingStats.js +87 -0
- package/dist/cli/tui/components/VotingStats.js.map +1 -0
- package/dist/cli/tui/config.d.ts +42 -0
- package/dist/cli/tui/config.d.ts.map +1 -0
- package/dist/cli/tui/config.js +144 -0
- package/dist/cli/tui/config.js.map +1 -0
- package/dist/cli/tui/hooks/index.d.ts +3 -1
- package/dist/cli/tui/hooks/index.d.ts.map +1 -1
- package/dist/cli/tui/hooks/index.js +5 -1
- package/dist/cli/tui/hooks/index.js.map +1 -1
- package/dist/cli/tui/hooks/useCache.d.ts.map +1 -1
- package/dist/cli/tui/hooks/useCache.js +32 -8
- package/dist/cli/tui/hooks/useCache.js.map +1 -1
- package/dist/cli/tui/hooks/useCliProcess.d.ts +19 -0
- package/dist/cli/tui/hooks/useCliProcess.d.ts.map +1 -0
- package/dist/cli/tui/hooks/useCliProcess.js +135 -0
- package/dist/cli/tui/hooks/useCliProcess.js.map +1 -0
- package/dist/cli/tui/hooks/useNavigation.d.ts +7 -1
- package/dist/cli/tui/hooks/useNavigation.d.ts.map +1 -1
- package/dist/cli/tui/hooks/useNavigation.js +73 -9
- package/dist/cli/tui/hooks/useNavigation.js.map +1 -1
- package/dist/cli/tui/hooks/useProposals.d.ts +2 -2
- package/dist/cli/tui/hooks/useProposals.d.ts.map +1 -1
- package/dist/cli/tui/hooks/useProposals.js +92 -27
- package/dist/cli/tui/hooks/useProposals.js.map +1 -1
- package/dist/cli/tui/hooks/useStageCalldata.d.ts +1 -1
- package/dist/cli/tui/hooks/useStageCalldata.d.ts.map +1 -1
- package/dist/cli/tui/hooks/useStageCalldata.js +45 -18
- package/dist/cli/tui/hooks/useStageCalldata.js.map +1 -1
- package/dist/cli/tui/hooks/useTracker.d.ts +4 -5
- package/dist/cli/tui/hooks/useTracker.d.ts.map +1 -1
- package/dist/cli/tui/hooks/useTracker.js +118 -78
- package/dist/cli/tui/hooks/useTracker.js.map +1 -1
- package/dist/cli/tui/index.d.ts +1 -0
- package/dist/cli/tui/index.d.ts.map +1 -1
- package/dist/cli/tui/index.js +38 -6
- package/dist/cli/tui/index.js.map +1 -1
- package/dist/cli/tui/types.d.ts +4 -1
- package/dist/cli/tui/types.d.ts.map +1 -1
- package/dist/cli/tui/utils/clipboard.d.ts +7 -0
- package/dist/cli/tui/utils/clipboard.d.ts.map +1 -0
- package/dist/cli/tui/utils/clipboard.js +46 -0
- package/dist/cli/tui/utils/clipboard.js.map +1 -0
- package/dist/cli/tui/utils/index.d.ts +1 -0
- package/dist/cli/tui/utils/index.d.ts.map +1 -1
- package/dist/cli/tui/utils/index.js +4 -1
- package/dist/cli/tui/utils/index.js.map +1 -1
- package/dist/cli/tui/utils/text.d.ts.map +1 -1
- package/dist/cli/tui/utils/text.js +2 -0
- package/dist/cli/tui/utils/text.js.map +1 -1
- package/dist/cli/tui/views/CalldataView.d.ts.map +1 -1
- package/dist/cli/tui/views/CalldataView.js +35 -21
- package/dist/cli/tui/views/CalldataView.js.map +1 -1
- package/dist/cli/tui/views/DescriptionView.d.ts.map +1 -1
- package/dist/cli/tui/views/DescriptionView.js +29 -21
- package/dist/cli/tui/views/DescriptionView.js.map +1 -1
- package/dist/cli/tui/views/ElectionView.d.ts.map +1 -1
- package/dist/cli/tui/views/ElectionView.js +64 -26
- package/dist/cli/tui/views/ElectionView.js.map +1 -1
- package/dist/cli/tui/views/HelpView.d.ts +10 -0
- package/dist/cli/tui/views/HelpView.d.ts.map +1 -0
- package/dist/cli/tui/views/HelpView.js +159 -0
- package/dist/cli/tui/views/HelpView.js.map +1 -0
- package/dist/cli/tui/views/ProposalDetail.d.ts +1 -1
- package/dist/cli/tui/views/ProposalDetail.d.ts.map +1 -1
- package/dist/cli/tui/views/ProposalDetail.js +45 -50
- package/dist/cli/tui/views/ProposalDetail.js.map +1 -1
- package/dist/cli/tui/views/ProposalList.d.ts.map +1 -1
- package/dist/cli/tui/views/ProposalList.js +47 -32
- package/dist/cli/tui/views/ProposalList.js.map +1 -1
- package/dist/cli/tui/views/SettingsView.d.ts +12 -0
- package/dist/cli/tui/views/SettingsView.d.ts.map +1 -0
- package/dist/cli/tui/views/SettingsView.js +203 -0
- package/dist/cli/tui/views/SettingsView.js.map +1 -0
- package/dist/cli/tui/views/SimulationView.d.ts.map +1 -1
- package/dist/cli/tui/views/SimulationView.js +26 -7
- package/dist/cli/tui/views/SimulationView.js.map +1 -1
- package/dist/cli/tui/views/StageView.d.ts.map +1 -1
- package/dist/cli/tui/views/StageView.js +34 -18
- package/dist/cli/tui/views/StageView.js.map +1 -1
- package/dist/stages/timelock.d.ts.map +1 -1
- package/dist/stages/timelock.js +5 -4
- package/dist/stages/timelock.js.map +1 -1
- package/dist/tracker/cache.d.ts.map +1 -1
- package/dist/tracker/cache.js +4 -0
- package/dist/tracker/cache.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTracker.js","sourceRoot":"","sources":["../../../../src/cli/tui/hooks/useTracker.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"useTracker.js","sourceRoot":"","sources":["../../../../src/cli/tui/hooks/useTracker.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/tui/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/tui/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/tui/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAIpD,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAgBD,wBAAsB,MAAM,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAiD/D"}
|
package/dist/cli/tui/index.js
CHANGED
|
@@ -40,7 +40,9 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
40
40
|
})();
|
|
41
41
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
42
|
exports.runTui = runTui;
|
|
43
|
+
const fs = __importStar(require("fs"));
|
|
43
44
|
const ink_wrapper_js_1 = require("./ink-wrapper.js");
|
|
45
|
+
const config_js_1 = require("./config.js");
|
|
44
46
|
function checkTtySupport() {
|
|
45
47
|
if (!process.stdin.isTTY) {
|
|
46
48
|
console.error("Error: TUI requires an interactive terminal (TTY).");
|
|
@@ -57,12 +59,42 @@ function checkTtySupport() {
|
|
|
57
59
|
async function runTui(options) {
|
|
58
60
|
checkTtySupport();
|
|
59
61
|
(0, ink_wrapper_js_1.checkTuiDependencies)();
|
|
62
|
+
// Set config storage path to same directory as cache
|
|
63
|
+
(0, config_js_1.setConfigBasePath)(options.cachePath);
|
|
64
|
+
// Set up file logging if logFile is specified
|
|
65
|
+
let logStream = null;
|
|
66
|
+
let originalStderrWrite = null;
|
|
67
|
+
if (options.logFile) {
|
|
68
|
+
logStream = fs.createWriteStream(options.logFile, { flags: "a" });
|
|
69
|
+
logStream.write(`\n--- TUI Session Started: ${new Date().toISOString()} ---\n`);
|
|
70
|
+
// Redirect stderr (where debug writes) to file
|
|
71
|
+
originalStderrWrite = process.stderr.write.bind(process.stderr);
|
|
72
|
+
process.stderr.write = ((chunk) => {
|
|
73
|
+
// Write to log file
|
|
74
|
+
logStream?.write(chunk);
|
|
75
|
+
// Don't write debug output to terminal (it would corrupt TUI)
|
|
76
|
+
// Only return true to indicate successful write
|
|
77
|
+
return true;
|
|
78
|
+
});
|
|
79
|
+
}
|
|
60
80
|
const { App } = await Promise.resolve().then(() => __importStar(require("./App.js")));
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
81
|
+
try {
|
|
82
|
+
const { waitUntilExit } = (0, ink_wrapper_js_1.render)(ink_wrapper_js_1.React.createElement(App, {
|
|
83
|
+
cachePath: options.cachePath,
|
|
84
|
+
providers: options.providers,
|
|
85
|
+
verbose: options.verbose,
|
|
86
|
+
}), { fullScreen: true });
|
|
87
|
+
await waitUntilExit();
|
|
88
|
+
}
|
|
89
|
+
finally {
|
|
90
|
+
// Restore stderr and close log file
|
|
91
|
+
if (originalStderrWrite) {
|
|
92
|
+
process.stderr.write = originalStderrWrite;
|
|
93
|
+
}
|
|
94
|
+
if (logStream) {
|
|
95
|
+
logStream.write(`--- TUI Session Ended: ${new Date().toISOString()} ---\n`);
|
|
96
|
+
logStream.end();
|
|
97
|
+
}
|
|
98
|
+
}
|
|
67
99
|
}
|
|
68
100
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/tui/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/tui/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BH,wBAiDC;AA3ED,uCAAyB;AAEzB,qDAAuE;AACvE,2CAAgD;AAShD,SAAS,eAAe;IACtB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACpE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACxC,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACnE,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAC/D,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC5C,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;QAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,MAAM,CAAC,OAAmB;IAC9C,eAAe,EAAE,CAAC;IAClB,IAAA,qCAAoB,GAAE,CAAC;IAEvB,qDAAqD;IACrD,IAAA,6BAAiB,EAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAErC,8CAA8C;IAC9C,IAAI,SAAS,GAA0B,IAAI,CAAC;IAC5C,IAAI,mBAAmB,GAAuC,IAAI,CAAC;IAEnE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,SAAS,GAAG,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAClE,SAAS,CAAC,KAAK,CAAC,8BAA8B,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAEhF,+CAA+C;QAC/C,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAChE,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,KAA0B,EAAE,EAAE;YACrD,oBAAoB;YACpB,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YACxB,8DAA8D;YAC9D,gDAAgD;YAChD,OAAO,IAAI,CAAC;QACd,CAAC,CAAgC,CAAC;IACpC,CAAC;IAED,MAAM,EAAE,GAAG,EAAE,GAAG,wDAAa,UAAU,GAAC,CAAC;IAEzC,IAAI,CAAC;QACH,MAAM,EAAE,aAAa,EAAE,GAAG,IAAA,uBAAM,EAC9B,sBAAK,CAAC,aAAa,CAAC,GAAG,EAAE;YACvB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,EACF,EAAE,UAAU,EAAE,IAAI,EAAE,CACrB,CAAC;QAEF,MAAM,aAAa,EAAE,CAAC;IACxB,CAAC;YAAS,CAAC;QACT,oCAAoC;QACpC,IAAI,mBAAmB,EAAE,CAAC;YACxB,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,mBAAmB,CAAC;QAC7C,CAAC;QACD,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,KAAK,CAAC,0BAA0B,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAC5E,SAAS,CAAC,GAAG,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;AACH,CAAC"}
|
package/dist/cli/tui/types.d.ts
CHANGED
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
* TUI-specific types
|
|
3
3
|
*/
|
|
4
4
|
import type { TrackingCheckpoint, TrackerStats, StageType } from "../../types/index.js";
|
|
5
|
-
export type ViewType = "list" | "detail" | "calldata" | "stage" | "simulation" | "description" | "election";
|
|
5
|
+
export type ViewType = "list" | "detail" | "calldata" | "stage" | "simulation" | "description" | "election" | "help" | "settings";
|
|
6
6
|
export type FilterType = "all" | "active" | "complete" | "timelocks";
|
|
7
|
+
export type SortType = "newest" | "oldest" | "progress" | "status";
|
|
7
8
|
export interface ProposalListItem {
|
|
8
9
|
key: string;
|
|
9
10
|
title: string;
|
|
@@ -18,7 +19,9 @@ export interface ProposalListItem {
|
|
|
18
19
|
}
|
|
19
20
|
export interface NavigationState {
|
|
20
21
|
view: ViewType;
|
|
22
|
+
previousView: ViewType | null;
|
|
21
23
|
filter: FilterType;
|
|
24
|
+
sort: SortType;
|
|
22
25
|
selectedIndex: number;
|
|
23
26
|
selectedProposal: ProposalListItem | null;
|
|
24
27
|
selectedStageIndex: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cli/tui/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAExF,MAAM,MAAM,QAAQ,GAChB,MAAM,GACN,QAAQ,GACR,UAAU,GACV,OAAO,GACP,YAAY,GACZ,aAAa,GACb,UAAU,CAAC;AAEf,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,CAAC;AAErE,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,UAAU,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;IACzC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,SAAS,GAAG,IAAI,CAAC;IAC/B,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,kBAAkB,CAAC;CAChC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC1C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC7C,KAAK,EAAE,YAAY,CAAC;CACrB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cli/tui/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAExF,MAAM,MAAM,QAAQ,GAChB,MAAM,GACN,QAAQ,GACR,UAAU,GACV,OAAO,GACP,YAAY,GACZ,aAAa,GACb,UAAU,GACV,MAAM,GACN,UAAU,CAAC;AAEf,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,CAAC;AAErE,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEnE,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,UAAU,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;IACzC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,SAAS,GAAG,IAAI,CAAC;IAC/B,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,kBAAkB,CAAC;CAChC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,CAAC;IACf,YAAY,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,QAAQ,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC1C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC7C,KAAK,EAAE,YAAY,CAAC;CACrB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Clipboard utilities for TUI
|
|
3
|
+
* Uses native OS clipboard commands via safe execFile
|
|
4
|
+
*/
|
|
5
|
+
export declare function copyToClipboard(text: string): boolean;
|
|
6
|
+
export declare function formatForCopy(value: string, type: "hash" | "address" | "id"): string;
|
|
7
|
+
//# sourceMappingURL=clipboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clipboard.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/utils/clipboard.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAuBrD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAUpF"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Clipboard utilities for TUI
|
|
4
|
+
* Uses native OS clipboard commands via safe execFile
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.copyToClipboard = copyToClipboard;
|
|
8
|
+
exports.formatForCopy = formatForCopy;
|
|
9
|
+
const child_process_1 = require("child_process");
|
|
10
|
+
function copyToClipboard(text) {
|
|
11
|
+
try {
|
|
12
|
+
const platform = process.platform;
|
|
13
|
+
if (platform === "darwin") {
|
|
14
|
+
(0, child_process_1.execFileSync)("pbcopy", [], { input: text });
|
|
15
|
+
}
|
|
16
|
+
else if (platform === "linux") {
|
|
17
|
+
// Try xclip first, then xsel
|
|
18
|
+
try {
|
|
19
|
+
(0, child_process_1.execFileSync)("xclip", ["-selection", "clipboard"], { input: text });
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
(0, child_process_1.execFileSync)("xsel", ["--clipboard", "--input"], { input: text });
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
else if (platform === "win32") {
|
|
26
|
+
(0, child_process_1.execFileSync)("clip", [], { input: text });
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
function formatForCopy(value, type) {
|
|
38
|
+
// Remove any display formatting
|
|
39
|
+
const cleaned = value.replace(/\s+/g, "").trim();
|
|
40
|
+
// Ensure proper prefix for addresses and hashes
|
|
41
|
+
if ((type === "hash" || type === "address") && !cleaned.startsWith("0x")) {
|
|
42
|
+
return `0x${cleaned}`;
|
|
43
|
+
}
|
|
44
|
+
return cleaned;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=clipboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clipboard.js","sourceRoot":"","sources":["../../../../src/cli/tui/utils/clipboard.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAIH,0CAuBC;AAED,sCAUC;AArCD,iDAA6C;AAE7C,SAAgB,eAAe,CAAC,IAAY;IAC1C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAElC,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,IAAA,4BAAY,EAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;aAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YAChC,6BAA6B;YAC7B,IAAI,CAAC;gBACH,IAAA,4BAAY,EAAC,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACtE,CAAC;YAAC,MAAM,CAAC;gBACP,IAAA,4BAAY,EAAC,MAAM,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;aAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YAChC,IAAA,4BAAY,EAAC,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAgB,aAAa,CAAC,KAAa,EAAE,IAA+B;IAC1E,gCAAgC;IAChC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAEjD,gDAAgD;IAChD,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACzE,OAAO,KAAK,OAAO,EAAE,CAAC;IACxB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { wrapText, truncate } from "./text.js";
|
|
2
2
|
export { getTerminalSize, getVisibleRows } from "./terminal.js";
|
|
3
3
|
export type { TerminalSize } from "./terminal.js";
|
|
4
|
+
export { copyToClipboard, formatForCopy } from "./clipboard.js";
|
|
4
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAChE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAChE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getVisibleRows = exports.getTerminalSize = exports.truncate = exports.wrapText = void 0;
|
|
3
|
+
exports.formatForCopy = exports.copyToClipboard = exports.getVisibleRows = exports.getTerminalSize = exports.truncate = exports.wrapText = void 0;
|
|
4
4
|
var text_js_1 = require("./text.js");
|
|
5
5
|
Object.defineProperty(exports, "wrapText", { enumerable: true, get: function () { return text_js_1.wrapText; } });
|
|
6
6
|
Object.defineProperty(exports, "truncate", { enumerable: true, get: function () { return text_js_1.truncate; } });
|
|
7
7
|
var terminal_js_1 = require("./terminal.js");
|
|
8
8
|
Object.defineProperty(exports, "getTerminalSize", { enumerable: true, get: function () { return terminal_js_1.getTerminalSize; } });
|
|
9
9
|
Object.defineProperty(exports, "getVisibleRows", { enumerable: true, get: function () { return terminal_js_1.getVisibleRows; } });
|
|
10
|
+
var clipboard_js_1 = require("./clipboard.js");
|
|
11
|
+
Object.defineProperty(exports, "copyToClipboard", { enumerable: true, get: function () { return clipboard_js_1.copyToClipboard; } });
|
|
12
|
+
Object.defineProperty(exports, "formatForCopy", { enumerable: true, get: function () { return clipboard_js_1.formatForCopy; } });
|
|
10
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/tui/utils/index.ts"],"names":[],"mappings":";;;AAAA,qCAA+C;AAAtC,mGAAA,QAAQ,OAAA;AAAE,mGAAA,QAAQ,OAAA;AAC3B,6CAAgE;AAAvD,8GAAA,eAAe,OAAA;AAAE,6GAAA,cAAc,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/tui/utils/index.ts"],"names":[],"mappings":";;;AAAA,qCAA+C;AAAtC,mGAAA,QAAQ,OAAA;AAAE,mGAAA,QAAQ,OAAA;AAC3B,6CAAgE;AAAvD,8GAAA,eAAe,OAAA;AAAE,6GAAA,cAAc,OAAA;AAExC,+CAAgE;AAAvD,+GAAA,eAAe,OAAA;AAAE,6GAAA,aAAa,OAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/utils/text.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAO9D;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/utils/text.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAO9D;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAI5D"}
|
|
@@ -21,6 +21,8 @@ function wrapText(text, width) {
|
|
|
21
21
|
* Truncate text with ellipsis if it exceeds maxLen
|
|
22
22
|
*/
|
|
23
23
|
function truncate(str, maxLen) {
|
|
24
|
+
if (maxLen <= 1)
|
|
25
|
+
return str.length > 0 ? "…" : "";
|
|
24
26
|
if (str.length <= maxLen)
|
|
25
27
|
return str;
|
|
26
28
|
return str.slice(0, maxLen - 1) + "…";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../../../src/cli/tui/utils/text.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAKH,4BAOC;AAKD,
|
|
1
|
+
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../../../src/cli/tui/utils/text.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAKH,4BAOC;AAKD,4BAIC;AAnBD;;GAEG;AACH,SAAgB,QAAQ,CAAC,IAAY,EAAE,KAAa;IAClD,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAgB,QAAQ,CAAC,GAAW,EAAE,MAAc;IAClD,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAClD,IAAI,GAAG,CAAC,MAAM,IAAI,MAAM;QAAE,OAAO,GAAG,CAAC;IACrC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AACxC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalldataView.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/views/CalldataView.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"CalldataView.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/views/CalldataView.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAW7D,UAAU,iBAAiB;IACzB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,UAAU,EAAE,mBAAmB,CAAC;CACjC;AAwFD,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,UAAU,GACX,EAAE,iBAAiB,GAAG,KAAK,CAAC,YAAY,CAkJxC"}
|
|
@@ -7,6 +7,7 @@ exports.CalldataView = CalldataView;
|
|
|
7
7
|
const ink_wrapper_js_1 = require("../ink-wrapper.js");
|
|
8
8
|
const index_js_1 = require("../hooks/index.js");
|
|
9
9
|
const ViewLayout_js_1 = require("../components/ViewLayout.js");
|
|
10
|
+
const ScrollIndicator_js_1 = require("../components/ScrollIndicator.js");
|
|
10
11
|
const index_js_2 = require("../utils/index.js");
|
|
11
12
|
const FOLD_THRESHOLD = 100;
|
|
12
13
|
function formatParameter(param, indent, keyPrefix) {
|
|
@@ -71,10 +72,11 @@ function formatDecodedCalldata(decoded, indent = 0, keyPrefix = "root") {
|
|
|
71
72
|
const RESERVED_LINES = 14;
|
|
72
73
|
function CalldataView({ proposal, navigation, }) {
|
|
73
74
|
const { state } = navigation;
|
|
74
|
-
const stages = proposal.checkpoint.cachedData.completedStages ?? [];
|
|
75
|
-
const { actions, loading, error } = (0, index_js_1.useStageCalldata)(stages[0]);
|
|
75
|
+
const stages = (0, ink_wrapper_js_1.useMemo)(() => proposal.checkpoint.cachedData.completedStages ?? [], [proposal.checkpoint.cachedData.completedStages]);
|
|
76
|
+
const { actions, loading, error } = (0, index_js_1.useStageCalldata)(stages[0], stages);
|
|
76
77
|
const [expandedKeys, setExpandedKeys] = (0, ink_wrapper_js_1.useState)(new Set());
|
|
77
|
-
const
|
|
78
|
+
const safeActionIndex = Math.min(state.calldataActionIndex, Math.max(0, actions.length - 1));
|
|
79
|
+
const currentAction = actions.length > 0 ? actions[safeActionIndex] : undefined;
|
|
78
80
|
const allLines = currentAction ? formatDecodedCalldata(currentAction.decoded) : [];
|
|
79
81
|
const displayLines = allLines.filter((line) => {
|
|
80
82
|
if (!line.isFoldedContent)
|
|
@@ -87,16 +89,16 @@ function CalldataView({ proposal, navigation, }) {
|
|
|
87
89
|
if (input === "b" || key.escape) {
|
|
88
90
|
navigation.back();
|
|
89
91
|
}
|
|
90
|
-
else if (key.upArrow) {
|
|
92
|
+
else if (key.upArrow || input === "k") {
|
|
91
93
|
navigation.moveUp();
|
|
92
94
|
}
|
|
93
|
-
else if (key.downArrow) {
|
|
95
|
+
else if (key.downArrow || input === "j") {
|
|
94
96
|
navigation.moveDown(displayLines.length);
|
|
95
97
|
}
|
|
96
|
-
else if (key.pageUp) {
|
|
98
|
+
else if (key.pageUp || (key.ctrl && input === "u")) {
|
|
97
99
|
navigation.pageUp(displayLines.length);
|
|
98
100
|
}
|
|
99
|
-
else if (key.pageDown) {
|
|
101
|
+
else if (key.pageDown || (key.ctrl && input === "d")) {
|
|
100
102
|
navigation.pageDown(displayLines.length);
|
|
101
103
|
}
|
|
102
104
|
else if (key.leftArrow) {
|
|
@@ -107,9 +109,11 @@ function CalldataView({ proposal, navigation, }) {
|
|
|
107
109
|
}
|
|
108
110
|
else if (input === "e") {
|
|
109
111
|
setExpandedKeys(new Set(allFoldableKeys));
|
|
112
|
+
navigation.goToTop();
|
|
110
113
|
}
|
|
111
114
|
else if (input === "c") {
|
|
112
115
|
setExpandedKeys(new Set());
|
|
116
|
+
navigation.goToTop();
|
|
113
117
|
}
|
|
114
118
|
else if (input === "g") {
|
|
115
119
|
navigation.goToTop();
|
|
@@ -118,7 +122,8 @@ function CalldataView({ proposal, navigation, }) {
|
|
|
118
122
|
navigation.goToBottom(displayLines.length);
|
|
119
123
|
}
|
|
120
124
|
else if (key.return) {
|
|
121
|
-
const
|
|
125
|
+
const safeIdx = Math.max(0, Math.min(state.scrollOffset, displayLines.length - 1));
|
|
126
|
+
const currentLine = displayLines[safeIdx];
|
|
122
127
|
if (currentLine?.foldable && currentLine.foldKey) {
|
|
123
128
|
setExpandedKeys((prev) => {
|
|
124
129
|
const next = new Set(prev);
|
|
@@ -132,17 +137,30 @@ function CalldataView({ proposal, navigation, }) {
|
|
|
132
137
|
});
|
|
133
138
|
}
|
|
134
139
|
}
|
|
140
|
+
else if (input === "?") {
|
|
141
|
+
navigation.goToHelp();
|
|
142
|
+
}
|
|
135
143
|
});
|
|
136
|
-
|
|
144
|
+
// Clamp scrollOffset to valid range in case displayLines shrunk after fold collapse
|
|
145
|
+
const safeOffset = Math.max(0, Math.min(state.scrollOffset, displayLines.length - 1));
|
|
146
|
+
const visibleLines = displayLines.slice(safeOffset, safeOffset + visibleCount);
|
|
147
|
+
const shortTitle = proposal.title.length > 30
|
|
148
|
+
? proposal.title.substring(0, 30) + "..."
|
|
149
|
+
: proposal.title;
|
|
150
|
+
const breadcrumb = ["Proposals", shortTitle, "Calldata"];
|
|
151
|
+
const keyHelpContext = {
|
|
152
|
+
calldataActionCount: actions.length,
|
|
153
|
+
currentActionIndex: safeActionIndex,
|
|
154
|
+
};
|
|
137
155
|
if (actions.length === 0) {
|
|
138
|
-
return (ink_wrapper_js_1.React.createElement(ViewLayout_js_1.ViewLayout, { view: "calldata", loading: loading, loadingText: "
|
|
156
|
+
return (ink_wrapper_js_1.React.createElement(ViewLayout_js_1.ViewLayout, { view: "calldata", loading: loading, loadingText: "Decoding calldata...", skeletonType: "text", error: error, breadcrumb: breadcrumb },
|
|
139
157
|
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, { color: "gray" }, "No calldata to display")));
|
|
140
158
|
}
|
|
141
|
-
return (ink_wrapper_js_1.React.createElement(ViewLayout_js_1.ViewLayout, { view: "calldata", loading: loading, loadingText: "
|
|
159
|
+
return (ink_wrapper_js_1.React.createElement(ViewLayout_js_1.ViewLayout, { view: "calldata", loading: loading, loadingText: "Decoding calldata...", skeletonType: "text", error: error, breadcrumb: breadcrumb, keyHelpContext: keyHelpContext },
|
|
142
160
|
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Box, { marginBottom: 1 },
|
|
143
161
|
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, { color: "cyan" },
|
|
144
162
|
"Action ",
|
|
145
|
-
|
|
163
|
+
safeActionIndex + 1,
|
|
146
164
|
"/",
|
|
147
165
|
actions.length),
|
|
148
166
|
actions.length > 1 && ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, { color: "gray" }, " (\u2190 \u2192 navigate)"),
|
|
@@ -155,26 +173,22 @@ function CalldataView({ proposal, navigation, }) {
|
|
|
155
173
|
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, { color: "gray" }, "Value: "),
|
|
156
174
|
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, null, currentAction.value)))),
|
|
157
175
|
ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Box, { flexDirection: "column" },
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
" lines above"),
|
|
176
|
+
displayLines.length > visibleCount && (ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Box, { marginBottom: 1 },
|
|
177
|
+
ink_wrapper_js_1.React.createElement(ScrollIndicator_js_1.ScrollPosition, { scrollOffset: safeOffset, visibleRows: visibleCount, totalItems: displayLines.length }))),
|
|
178
|
+
ink_wrapper_js_1.React.createElement(ScrollIndicator_js_1.ScrollIndicatorTop, { scrollOffset: safeOffset, unit: "lines" }),
|
|
162
179
|
visibleLines.map((line, i) => {
|
|
163
180
|
const prefix = " ".repeat(line.indent);
|
|
164
181
|
const isExpanded = line.foldKey && expandedKeys.has(line.foldKey);
|
|
165
182
|
const foldIndicator = line.foldable
|
|
166
183
|
? isExpanded
|
|
167
184
|
? "[-] "
|
|
168
|
-
: `[+${line.foldedLineCount}] `
|
|
185
|
+
: `[+${line.foldedLineCount ?? 0}] `
|
|
169
186
|
: "";
|
|
170
187
|
return (ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, { key: i },
|
|
171
188
|
prefix,
|
|
172
189
|
line.foldable && ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Text, { color: "yellow" }, foldIndicator),
|
|
173
190
|
line.text));
|
|
174
191
|
}),
|
|
175
|
-
|
|
176
|
-
"\u2193 ",
|
|
177
|
-
displayLines.length - state.scrollOffset - visibleCount,
|
|
178
|
-
" lines below")))));
|
|
192
|
+
ink_wrapper_js_1.React.createElement(ScrollIndicator_js_1.ScrollIndicatorBottom, { scrollOffset: safeOffset, visibleRows: visibleCount, totalItems: displayLines.length, unit: "lines" }))));
|
|
179
193
|
}
|
|
180
194
|
//# sourceMappingURL=CalldataView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalldataView.js","sourceRoot":"","sources":["../../../../src/cli/tui/views/CalldataView.tsx"],"names":[],"mappings":";AAAA;;GAEG;;
|
|
1
|
+
{"version":3,"file":"CalldataView.js","sourceRoot":"","sources":["../../../../src/cli/tui/views/CalldataView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DescriptionView.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/views/DescriptionView.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"DescriptionView.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/views/DescriptionView.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAS7D,UAAU,oBAAoB;IAC5B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,UAAU,EAAE,mBAAmB,CAAC;CACjC;AAiKD,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,UAAU,GACX,EAAE,oBAAoB,GAAG,KAAK,CAAC,YAAY,CA4D3C"}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.DescriptionView = DescriptionView;
|
|
7
7
|
const ink_wrapper_js_1 = require("../ink-wrapper.js");
|
|
8
8
|
const ViewLayout_js_1 = require("../components/ViewLayout.js");
|
|
9
|
+
const ScrollIndicator_js_1 = require("../components/ScrollIndicator.js");
|
|
9
10
|
const index_js_1 = require("../utils/index.js");
|
|
10
11
|
function getDescription(proposal) {
|
|
11
12
|
const stages = proposal.checkpoint.cachedData.completedStages ?? [];
|
|
@@ -21,6 +22,8 @@ function getDescription(proposal) {
|
|
|
21
22
|
function parseMarkdown(text, width) {
|
|
22
23
|
const result = [];
|
|
23
24
|
const lines = text.split("\n");
|
|
25
|
+
// Guard against very narrow terminals
|
|
26
|
+
const safeWidth = Math.max(20, width);
|
|
24
27
|
for (const rawLine of lines) {
|
|
25
28
|
const trimmed = rawLine.trim();
|
|
26
29
|
// Empty line
|
|
@@ -30,7 +33,7 @@ function parseMarkdown(text, width) {
|
|
|
30
33
|
}
|
|
31
34
|
// Horizontal rule
|
|
32
35
|
if (/^[-*_]{3,}$/.test(trimmed)) {
|
|
33
|
-
result.push({ text: "─".repeat(Math.min(
|
|
36
|
+
result.push({ text: "─".repeat(Math.min(safeWidth - 4, 60)), type: "separator", indent: 0 });
|
|
34
37
|
continue;
|
|
35
38
|
}
|
|
36
39
|
// Headers
|
|
@@ -49,7 +52,7 @@ function parseMarkdown(text, width) {
|
|
|
49
52
|
// Bullet points
|
|
50
53
|
if (/^[-*+] /.test(trimmed)) {
|
|
51
54
|
const bulletText = trimmed.slice(2);
|
|
52
|
-
wrapTextToLines(bulletText,
|
|
55
|
+
wrapTextToLines(bulletText, safeWidth - 6, "bullet", 2, result);
|
|
53
56
|
continue;
|
|
54
57
|
}
|
|
55
58
|
// Numbered lists
|
|
@@ -57,9 +60,10 @@ function parseMarkdown(text, width) {
|
|
|
57
60
|
const match = trimmed.match(/^(\d+)\. /);
|
|
58
61
|
if (match) {
|
|
59
62
|
const numText = trimmed.slice(match[0].length);
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
+
const textWidth = safeWidth - 6;
|
|
64
|
+
result.push({ text: `${match[1]}. ${numText.slice(0, textWidth)}`, type: "bullet", indent: 0 });
|
|
65
|
+
if (numText.length > textWidth) {
|
|
66
|
+
wrapTextToLines(numText.slice(textWidth), textWidth, "normal", 3, result);
|
|
63
67
|
}
|
|
64
68
|
continue;
|
|
65
69
|
}
|
|
@@ -71,18 +75,19 @@ function parseMarkdown(text, width) {
|
|
|
71
75
|
// Links - simplify [text](url) to just text
|
|
72
76
|
const processedLine = trimmed.replace(/\[([^\]]+)\]\([^)]+\)/g, "$1");
|
|
73
77
|
// Normal paragraph
|
|
74
|
-
wrapTextToLines(processedLine,
|
|
78
|
+
wrapTextToLines(processedLine, safeWidth - 4, "normal", 0, result);
|
|
75
79
|
}
|
|
76
80
|
return result;
|
|
77
81
|
}
|
|
78
82
|
function wrapTextToLines(text, width, type, indent, result) {
|
|
83
|
+
const safeWidth = Math.max(10, width);
|
|
79
84
|
const words = text.split(/\s+/);
|
|
80
85
|
let currentLine = "";
|
|
81
86
|
for (const word of words) {
|
|
82
87
|
if (currentLine.length === 0) {
|
|
83
88
|
currentLine = word;
|
|
84
89
|
}
|
|
85
|
-
else if (currentLine.length + 1 + word.length <=
|
|
90
|
+
else if (currentLine.length + 1 + word.length <= safeWidth) {
|
|
86
91
|
currentLine += " " + word;
|
|
87
92
|
}
|
|
88
93
|
else {
|
|
@@ -134,23 +139,23 @@ function DescriptionView({ proposal, navigation, }) {
|
|
|
134
139
|
const { state } = navigation;
|
|
135
140
|
const description = getDescription(proposal);
|
|
136
141
|
const terminalWidth = process.stdout.columns || 80;
|
|
137
|
-
const lines = parseMarkdown(description, terminalWidth - 4);
|
|
142
|
+
const lines = (0, ink_wrapper_js_1.useMemo)(() => parseMarkdown(description, terminalWidth - 4), [description, terminalWidth]);
|
|
138
143
|
const visibleCount = (0, index_js_1.getVisibleRows)(RESERVED_LINES);
|
|
139
144
|
const visibleLines = lines.slice(state.scrollOffset, state.scrollOffset + visibleCount);
|
|
140
145
|
(0, ink_wrapper_js_1.useInput)((input, key) => {
|
|
141
146
|
if (input === "b" || key.escape) {
|
|
142
147
|
navigation.back();
|
|
143
148
|
}
|
|
144
|
-
else if (key.upArrow) {
|
|
149
|
+
else if (key.upArrow || input === "k") {
|
|
145
150
|
navigation.moveUp();
|
|
146
151
|
}
|
|
147
|
-
else if (key.downArrow) {
|
|
152
|
+
else if (key.downArrow || input === "j") {
|
|
148
153
|
navigation.moveDown(lines.length);
|
|
149
154
|
}
|
|
150
|
-
else if (key.pageUp) {
|
|
155
|
+
else if (key.pageUp || (key.ctrl && input === "u")) {
|
|
151
156
|
navigation.pageUp(lines.length);
|
|
152
157
|
}
|
|
153
|
-
else if (key.pageDown) {
|
|
158
|
+
else if (key.pageDown || (key.ctrl && input === "d")) {
|
|
154
159
|
navigation.pageDown(lines.length);
|
|
155
160
|
}
|
|
156
161
|
else if (input === "g") {
|
|
@@ -159,16 +164,19 @@ function DescriptionView({ proposal, navigation, }) {
|
|
|
159
164
|
else if (input === "G") {
|
|
160
165
|
navigation.goToBottom(lines.length);
|
|
161
166
|
}
|
|
167
|
+
else if (input === "?") {
|
|
168
|
+
navigation.goToHelp();
|
|
169
|
+
}
|
|
162
170
|
});
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
171
|
+
const shortTitle = proposal.title.length > 30
|
|
172
|
+
? proposal.title.substring(0, 30) + "..."
|
|
173
|
+
: proposal.title;
|
|
174
|
+
const breadcrumb = ["Proposals", shortTitle, "Description"];
|
|
175
|
+
return (ink_wrapper_js_1.React.createElement(ViewLayout_js_1.ViewLayout, { view: "description", title: "Proposal Description", breadcrumb: breadcrumb },
|
|
176
|
+
lines.length > visibleCount && (ink_wrapper_js_1.React.createElement(ink_wrapper_js_1.Box, { marginBottom: 1 },
|
|
177
|
+
ink_wrapper_js_1.React.createElement(ScrollIndicator_js_1.ScrollPosition, { scrollOffset: state.scrollOffset, visibleRows: visibleCount, totalItems: lines.length }))),
|
|
178
|
+
ink_wrapper_js_1.React.createElement(ScrollIndicator_js_1.ScrollIndicatorTop, { scrollOffset: state.scrollOffset, unit: "lines" }),
|
|
168
179
|
visibleLines.map((line, i) => (ink_wrapper_js_1.React.createElement(FormattedLineComponent, { key: i, line: line }))),
|
|
169
|
-
state.scrollOffset
|
|
170
|
-
"\u2193 ",
|
|
171
|
-
lines.length - state.scrollOffset - visibleCount,
|
|
172
|
-
" lines below"))));
|
|
180
|
+
ink_wrapper_js_1.React.createElement(ScrollIndicator_js_1.ScrollIndicatorBottom, { scrollOffset: state.scrollOffset, visibleRows: visibleCount, totalItems: lines.length, unit: "lines" })));
|
|
173
181
|
}
|
|
174
182
|
//# sourceMappingURL=DescriptionView.js.map
|