@calltelemetry/cli 0.1.0
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/commands/config.d.ts +3 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +201 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/db.d.ts +3 -0
- package/dist/commands/db.d.ts.map +1 -0
- package/dist/commands/db.js +143 -0
- package/dist/commands/db.js.map +1 -0
- package/dist/commands/diag.d.ts +3 -0
- package/dist/commands/diag.d.ts.map +1 -0
- package/dist/commands/diag.js +123 -0
- package/dist/commands/diag.js.map +1 -0
- package/dist/commands/docker.d.ts +3 -0
- package/dist/commands/docker.d.ts.map +1 -0
- package/dist/commands/docker.js +34 -0
- package/dist/commands/docker.js.map +1 -0
- package/dist/commands/jtapi.d.ts +3 -0
- package/dist/commands/jtapi.d.ts.map +1 -0
- package/dist/commands/jtapi.js +36 -0
- package/dist/commands/jtapi.js.map +1 -0
- package/dist/commands/migrate.d.ts +3 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +49 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/offline.d.ts +3 -0
- package/dist/commands/offline.d.ts.map +1 -0
- package/dist/commands/offline.js +170 -0
- package/dist/commands/offline.js.map +1 -0
- package/dist/commands/secrets.d.ts +3 -0
- package/dist/commands/secrets.d.ts.map +1 -0
- package/dist/commands/secrets.js +55 -0
- package/dist/commands/secrets.js.map +1 -0
- package/dist/commands/status.d.ts +3 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +13 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/update.d.ts +3 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +202 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +65 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/bundle.d.ts +5 -0
- package/dist/lib/bundle.d.ts.map +1 -0
- package/dist/lib/bundle.js +134 -0
- package/dist/lib/bundle.js.map +1 -0
- package/dist/lib/certs.d.ts +3 -0
- package/dist/lib/certs.d.ts.map +1 -0
- package/dist/lib/certs.js +29 -0
- package/dist/lib/certs.js.map +1 -0
- package/dist/lib/compose.d.ts +36 -0
- package/dist/lib/compose.d.ts.map +1 -0
- package/dist/lib/compose.js +137 -0
- package/dist/lib/compose.js.map +1 -0
- package/dist/lib/db.d.ts +6 -0
- package/dist/lib/db.d.ts.map +1 -0
- package/dist/lib/db.js +6 -0
- package/dist/lib/db.js.map +1 -0
- package/dist/lib/fs.d.ts +20 -0
- package/dist/lib/fs.d.ts.map +1 -0
- package/dist/lib/fs.js +72 -0
- package/dist/lib/fs.js.map +1 -0
- package/dist/lib/jtapi.d.ts +6 -0
- package/dist/lib/jtapi.d.ts.map +1 -0
- package/dist/lib/jtapi.js +27 -0
- package/dist/lib/jtapi.js.map +1 -0
- package/dist/lib/network.d.ts +43 -0
- package/dist/lib/network.d.ts.map +1 -0
- package/dist/lib/network.js +172 -0
- package/dist/lib/network.js.map +1 -0
- package/dist/lib/paths.d.ts +19 -0
- package/dist/lib/paths.d.ts.map +1 -0
- package/dist/lib/paths.js +57 -0
- package/dist/lib/paths.js.map +1 -0
- package/dist/lib/postgres.d.ts +4 -0
- package/dist/lib/postgres.d.ts.map +1 -0
- package/dist/lib/postgres.js +49 -0
- package/dist/lib/postgres.js.map +1 -0
- package/dist/lib/rpc.d.ts +5 -0
- package/dist/lib/rpc.d.ts.map +1 -0
- package/dist/lib/rpc.js +28 -0
- package/dist/lib/rpc.js.map +1 -0
- package/dist/lib/secrets.d.ts +38 -0
- package/dist/lib/secrets.d.ts.map +1 -0
- package/dist/lib/secrets.js +132 -0
- package/dist/lib/secrets.js.map +1 -0
- package/dist/lib/system.d.ts +12 -0
- package/dist/lib/system.d.ts.map +1 -0
- package/dist/lib/system.js +61 -0
- package/dist/lib/system.js.map +1 -0
- package/dist/ui/components/AppShell.d.ts +9 -0
- package/dist/ui/components/AppShell.d.ts.map +1 -0
- package/dist/ui/components/AppShell.js +6 -0
- package/dist/ui/components/AppShell.js.map +1 -0
- package/dist/ui/components/Confirm.d.ts +7 -0
- package/dist/ui/components/Confirm.d.ts.map +1 -0
- package/dist/ui/components/Confirm.js +14 -0
- package/dist/ui/components/Confirm.js.map +1 -0
- package/dist/ui/components/DataTable.d.ts +12 -0
- package/dist/ui/components/DataTable.d.ts.map +1 -0
- package/dist/ui/components/DataTable.js +28 -0
- package/dist/ui/components/DataTable.js.map +1 -0
- package/dist/ui/components/Divider.d.ts +6 -0
- package/dist/ui/components/Divider.d.ts.map +1 -0
- package/dist/ui/components/Divider.js +6 -0
- package/dist/ui/components/Divider.js.map +1 -0
- package/dist/ui/components/KeyValue.d.ts +11 -0
- package/dist/ui/components/KeyValue.d.ts.map +1 -0
- package/dist/ui/components/KeyValue.js +7 -0
- package/dist/ui/components/KeyValue.js.map +1 -0
- package/dist/ui/components/Section.d.ts +8 -0
- package/dist/ui/components/Section.d.ts.map +1 -0
- package/dist/ui/components/Section.js +6 -0
- package/dist/ui/components/Section.js.map +1 -0
- package/dist/ui/components/SelectMenu.d.ts +14 -0
- package/dist/ui/components/SelectMenu.d.ts.map +1 -0
- package/dist/ui/components/SelectMenu.js +55 -0
- package/dist/ui/components/SelectMenu.js.map +1 -0
- package/dist/ui/components/ShellOutput.d.ts +7 -0
- package/dist/ui/components/ShellOutput.d.ts.map +1 -0
- package/dist/ui/components/ShellOutput.js +10 -0
- package/dist/ui/components/ShellOutput.js.map +1 -0
- package/dist/ui/components/Spinner.d.ts +6 -0
- package/dist/ui/components/Spinner.d.ts.map +1 -0
- package/dist/ui/components/Spinner.js +7 -0
- package/dist/ui/components/Spinner.js.map +1 -0
- package/dist/ui/components/StatusBox.d.ts +8 -0
- package/dist/ui/components/StatusBox.d.ts.map +1 -0
- package/dist/ui/components/StatusBox.js +12 -0
- package/dist/ui/components/StatusBox.js.map +1 -0
- package/dist/ui/components/StatusLine.d.ts +8 -0
- package/dist/ui/components/StatusLine.d.ts.map +1 -0
- package/dist/ui/components/StatusLine.js +13 -0
- package/dist/ui/components/StatusLine.js.map +1 -0
- package/dist/ui/components/StepList.d.ts +11 -0
- package/dist/ui/components/StepList.d.ts.map +1 -0
- package/dist/ui/components/StepList.js +19 -0
- package/dist/ui/components/StepList.js.map +1 -0
- package/dist/ui/components/SubSection.d.ts +8 -0
- package/dist/ui/components/SubSection.d.ts.map +1 -0
- package/dist/ui/components/SubSection.js +6 -0
- package/dist/ui/components/SubSection.js.map +1 -0
- package/dist/ui/components/TextInput.d.ts +11 -0
- package/dist/ui/components/TextInput.d.ts.map +1 -0
- package/dist/ui/components/TextInput.js +7 -0
- package/dist/ui/components/TextInput.js.map +1 -0
- package/dist/ui/components/index.d.ts +16 -0
- package/dist/ui/components/index.d.ts.map +1 -0
- package/dist/ui/components/index.js +15 -0
- package/dist/ui/components/index.js.map +1 -0
- package/dist/ui/hooks/index.d.ts +7 -0
- package/dist/ui/hooks/index.d.ts.map +1 -0
- package/dist/ui/hooks/index.js +5 -0
- package/dist/ui/hooks/index.js.map +1 -0
- package/dist/ui/hooks/useAsyncTask.d.ts +9 -0
- package/dist/ui/hooks/useAsyncTask.d.ts.map +1 -0
- package/dist/ui/hooks/useAsyncTask.js +22 -0
- package/dist/ui/hooks/useAsyncTask.js.map +1 -0
- package/dist/ui/hooks/usePolling.d.ts +8 -0
- package/dist/ui/hooks/usePolling.d.ts.map +1 -0
- package/dist/ui/hooks/usePolling.js +43 -0
- package/dist/ui/hooks/usePolling.js.map +1 -0
- package/dist/ui/hooks/useStepRunner.d.ts +16 -0
- package/dist/ui/hooks/useStepRunner.d.ts.map +1 -0
- package/dist/ui/hooks/useStepRunner.js +42 -0
- package/dist/ui/hooks/useStepRunner.js.map +1 -0
- package/dist/ui/hooks/useStreamingProcess.d.ts +8 -0
- package/dist/ui/hooks/useStreamingProcess.d.ts.map +1 -0
- package/dist/ui/hooks/useStreamingProcess.js +49 -0
- package/dist/ui/hooks/useStreamingProcess.js.map +1 -0
- package/dist/ui/types.d.ts +24 -0
- package/dist/ui/types.d.ts.map +1 -0
- package/dist/ui/types.js +2 -0
- package/dist/ui/types.js.map +1 -0
- package/dist/ui/views/CertsStatusView.d.ts +2 -0
- package/dist/ui/views/CertsStatusView.d.ts.map +1 -0
- package/dist/ui/views/CertsStatusView.js +95 -0
- package/dist/ui/views/CertsStatusView.js.map +1 -0
- package/dist/ui/views/DbBackupView.d.ts +2 -0
- package/dist/ui/views/DbBackupView.d.ts.map +1 -0
- package/dist/ui/views/DbBackupView.js +62 -0
- package/dist/ui/views/DbBackupView.js.map +1 -0
- package/dist/ui/views/DbCompactView.d.ts +2 -0
- package/dist/ui/views/DbCompactView.d.ts.map +1 -0
- package/dist/ui/views/DbCompactView.js +28 -0
- package/dist/ui/views/DbCompactView.js.map +1 -0
- package/dist/ui/views/DbListView.d.ts +2 -0
- package/dist/ui/views/DbListView.d.ts.map +1 -0
- package/dist/ui/views/DbListView.js +30 -0
- package/dist/ui/views/DbListView.js.map +1 -0
- package/dist/ui/views/DbSizeView.d.ts +2 -0
- package/dist/ui/views/DbSizeView.d.ts.map +1 -0
- package/dist/ui/views/DbSizeView.js +21 -0
- package/dist/ui/views/DbSizeView.js.map +1 -0
- package/dist/ui/views/DbStatusView.d.ts +2 -0
- package/dist/ui/views/DbStatusView.d.ts.map +1 -0
- package/dist/ui/views/DbStatusView.js +41 -0
- package/dist/ui/views/DbStatusView.js.map +1 -0
- package/dist/ui/views/DbTablesView.d.ts +6 -0
- package/dist/ui/views/DbTablesView.d.ts.map +1 -0
- package/dist/ui/views/DbTablesView.js +28 -0
- package/dist/ui/views/DbTablesView.js.map +1 -0
- package/dist/ui/views/DiagDatabaseView.d.ts +2 -0
- package/dist/ui/views/DiagDatabaseView.d.ts.map +1 -0
- package/dist/ui/views/DiagDatabaseView.js +51 -0
- package/dist/ui/views/DiagDatabaseView.js.map +1 -0
- package/dist/ui/views/DiagNetworkView.d.ts +2 -0
- package/dist/ui/views/DiagNetworkView.d.ts.map +1 -0
- package/dist/ui/views/DiagNetworkView.js +169 -0
- package/dist/ui/views/DiagNetworkView.js.map +1 -0
- package/dist/ui/views/DiagServiceView.d.ts +2 -0
- package/dist/ui/views/DiagServiceView.d.ts.map +1 -0
- package/dist/ui/views/DiagServiceView.js +37 -0
- package/dist/ui/views/DiagServiceView.js.map +1 -0
- package/dist/ui/views/DockerNetworkView.d.ts +2 -0
- package/dist/ui/views/DockerNetworkView.d.ts.map +1 -0
- package/dist/ui/views/DockerNetworkView.js +29 -0
- package/dist/ui/views/DockerNetworkView.js.map +1 -0
- package/dist/ui/views/DockerPruneView.d.ts +2 -0
- package/dist/ui/views/DockerPruneView.d.ts.map +1 -0
- package/dist/ui/views/DockerPruneView.js +57 -0
- package/dist/ui/views/DockerPruneView.js.map +1 -0
- package/dist/ui/views/DockerStatusView.d.ts +2 -0
- package/dist/ui/views/DockerStatusView.d.ts.map +1 -0
- package/dist/ui/views/DockerStatusView.js +43 -0
- package/dist/ui/views/DockerStatusView.js.map +1 -0
- package/dist/ui/views/JtapiDisableView.d.ts +2 -0
- package/dist/ui/views/JtapiDisableView.d.ts.map +1 -0
- package/dist/ui/views/JtapiDisableView.js +55 -0
- package/dist/ui/views/JtapiDisableView.js.map +1 -0
- package/dist/ui/views/JtapiEnableView.d.ts +2 -0
- package/dist/ui/views/JtapiEnableView.d.ts.map +1 -0
- package/dist/ui/views/JtapiEnableView.js +47 -0
- package/dist/ui/views/JtapiEnableView.js.map +1 -0
- package/dist/ui/views/JtapiStatusView.d.ts +2 -0
- package/dist/ui/views/JtapiStatusView.d.ts.map +1 -0
- package/dist/ui/views/JtapiStatusView.js +18 -0
- package/dist/ui/views/JtapiStatusView.js.map +1 -0
- package/dist/ui/views/JtapiTroubleshootView.d.ts +2 -0
- package/dist/ui/views/JtapiTroubleshootView.d.ts.map +1 -0
- package/dist/ui/views/JtapiTroubleshootView.js +120 -0
- package/dist/ui/views/JtapiTroubleshootView.js.map +1 -0
- package/dist/ui/views/MainMenu.d.ts +8 -0
- package/dist/ui/views/MainMenu.d.ts.map +1 -0
- package/dist/ui/views/MainMenu.js +110 -0
- package/dist/ui/views/MainMenu.js.map +1 -0
- package/dist/ui/views/MigrateHistoryView.d.ts +2 -0
- package/dist/ui/views/MigrateHistoryView.d.ts.map +1 -0
- package/dist/ui/views/MigrateHistoryView.js +25 -0
- package/dist/ui/views/MigrateHistoryView.js.map +1 -0
- package/dist/ui/views/MigrateRollbackView.d.ts +6 -0
- package/dist/ui/views/MigrateRollbackView.d.ts.map +1 -0
- package/dist/ui/views/MigrateRollbackView.js +50 -0
- package/dist/ui/views/MigrateRollbackView.js.map +1 -0
- package/dist/ui/views/MigrateRunView.d.ts +2 -0
- package/dist/ui/views/MigrateRunView.d.ts.map +1 -0
- package/dist/ui/views/MigrateRunView.js +50 -0
- package/dist/ui/views/MigrateRunView.js.map +1 -0
- package/dist/ui/views/MigrateStatusView.d.ts +2 -0
- package/dist/ui/views/MigrateStatusView.d.ts.map +1 -0
- package/dist/ui/views/MigrateStatusView.js +88 -0
- package/dist/ui/views/MigrateStatusView.js.map +1 -0
- package/dist/ui/views/MigrateWatchView.d.ts +6 -0
- package/dist/ui/views/MigrateWatchView.d.ts.map +1 -0
- package/dist/ui/views/MigrateWatchView.js +83 -0
- package/dist/ui/views/MigrateWatchView.js.map +1 -0
- package/dist/ui/views/OfflineListView.d.ts +2 -0
- package/dist/ui/views/OfflineListView.d.ts.map +1 -0
- package/dist/ui/views/OfflineListView.js +47 -0
- package/dist/ui/views/OfflineListView.js.map +1 -0
- package/dist/ui/views/SecretsSetupView.d.ts +2 -0
- package/dist/ui/views/SecretsSetupView.d.ts.map +1 -0
- package/dist/ui/views/SecretsSetupView.js +94 -0
- package/dist/ui/views/SecretsSetupView.js.map +1 -0
- package/dist/ui/views/SecretsStatusView.d.ts +2 -0
- package/dist/ui/views/SecretsStatusView.d.ts.map +1 -0
- package/dist/ui/views/SecretsStatusView.js +36 -0
- package/dist/ui/views/SecretsStatusView.js.map +1 -0
- package/dist/ui/views/StatusView.d.ts +2 -0
- package/dist/ui/views/StatusView.d.ts.map +1 -0
- package/dist/ui/views/StatusView.js +80 -0
- package/dist/ui/views/StatusView.js.map +1 -0
- package/dist/utils/output.d.ts +11 -0
- package/dist/utils/output.d.ts.map +1 -0
- package/dist/utils/output.js +30 -0
- package/dist/utils/output.js.map +1 -0
- package/dist/utils/prompt.d.ts +6 -0
- package/dist/utils/prompt.d.ts.map +1 -0
- package/dist/utils/prompt.js +25 -0
- package/dist/utils/prompt.js.map +1 -0
- package/dist/utils/version.d.ts +8 -0
- package/dist/utils/version.d.ts.map +1 -0
- package/dist/utils/version.js +35 -0
- package/dist/utils/version.js.map +1 -0
- package/package.json +59 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { execa } from 'execa';
|
|
2
|
+
import os from 'node:os';
|
|
3
|
+
export async function checkRam(requiredMb = 7168) {
|
|
4
|
+
const totalBytes = os.totalmem();
|
|
5
|
+
const totalMb = Math.floor(totalBytes / 1024 / 1024);
|
|
6
|
+
return { ok: totalMb >= requiredMb, totalMb };
|
|
7
|
+
}
|
|
8
|
+
export async function checkDiskSpace(path = '/', requiredFreePercent = 10) {
|
|
9
|
+
try {
|
|
10
|
+
const { stdout } = await execa('df', ['-h', path]);
|
|
11
|
+
const lines = stdout.split('\n');
|
|
12
|
+
if (lines.length < 2)
|
|
13
|
+
return { ok: false, usedPercent: 100, freePercent: 0 };
|
|
14
|
+
const match = lines[1].match(/(\d+)%/);
|
|
15
|
+
const usedPercent = match ? parseInt(match[1], 10) : 100;
|
|
16
|
+
const freePercent = 100 - usedPercent;
|
|
17
|
+
return { ok: freePercent >= requiredFreePercent, usedPercent, freePercent };
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return { ok: false, usedPercent: 100, freePercent: 0 };
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export async function getDockerVersion() {
|
|
24
|
+
try {
|
|
25
|
+
const { stdout } = await execa('docker', ['--version']);
|
|
26
|
+
const match = stdout.match(/(\d+)\.\d+/);
|
|
27
|
+
return match ? parseInt(match[1], 10) : null;
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
export async function getSystemStats() {
|
|
34
|
+
const platform = os.platform();
|
|
35
|
+
const totalMem = os.totalmem();
|
|
36
|
+
const freeMem = os.freemem();
|
|
37
|
+
const usedMem = totalMem - freeMem;
|
|
38
|
+
const cpus = os.cpus();
|
|
39
|
+
const loadAvg = os.loadavg();
|
|
40
|
+
const memStr = `MEM ${formatBytes(usedMem)}/${formatBytes(totalMem)}`;
|
|
41
|
+
const cpuStr = `CPU ${cpus.length} cores, load ${loadAvg[0].toFixed(1)}`;
|
|
42
|
+
let diskStr = 'DISK unavailable';
|
|
43
|
+
try {
|
|
44
|
+
const { stdout } = await execa('df', ['-h', '/']);
|
|
45
|
+
const lines = stdout.split('\n');
|
|
46
|
+
if (lines.length >= 2) {
|
|
47
|
+
const parts = lines[1].split(/\s+/);
|
|
48
|
+
diskStr = `DISK ${parts[2]}/${parts[1]} (${parts[4]} used)`;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
catch { /* ignore */ }
|
|
52
|
+
return `${cpuStr} | ${memStr} | ${diskStr}`;
|
|
53
|
+
}
|
|
54
|
+
function formatBytes(bytes) {
|
|
55
|
+
const gb = bytes / (1024 * 1024 * 1024);
|
|
56
|
+
if (gb >= 1)
|
|
57
|
+
return `${gb.toFixed(1)}GB`;
|
|
58
|
+
const mb = bytes / (1024 * 1024);
|
|
59
|
+
return `${mb.toFixed(0)}MB`;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=system.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system.js","sourceRoot":"","sources":["../../src/lib/system.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
interface AppShellProps {
|
|
3
|
+
title?: string;
|
|
4
|
+
command?: string;
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
}
|
|
7
|
+
export declare function AppShell({ title, command, children }: AppShellProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=AppShell.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AppShell.d.ts","sourceRoot":"","sources":["../../../src/ui/components/AppShell.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,UAAU,aAAa;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,QAAQ,CAAC,EAAE,KAA2B,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,aAAa,2CAgBzF"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from 'ink';
|
|
3
|
+
export function AppShell({ title = 'CallTelemetry CLI', command, children }) {
|
|
4
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { borderStyle: "single", paddingX: 1, justifyContent: "space-between", children: [_jsx(Text, { bold: true, color: "cyan", children: title }), command && _jsx(Text, { dimColor: true, children: command })] }), _jsx(Box, { flexDirection: "column", paddingTop: 1, children: children })] }));
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=AppShell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AppShell.js","sourceRoot":"","sources":["../../../src/ui/components/AppShell.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAShC,MAAM,UAAU,QAAQ,CAAC,EAAE,KAAK,GAAG,mBAAmB,EAAE,OAAO,EAAE,QAAQ,EAAiB;IACxF,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,MAAC,GAAG,IACF,WAAW,EAAC,QAAQ,EACpB,QAAQ,EAAE,CAAC,EACX,cAAc,EAAC,eAAe,aAE9B,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,MAAM,YAAE,KAAK,GAAQ,EACrC,OAAO,IAAI,KAAC,IAAI,IAAC,QAAQ,kBAAE,OAAO,GAAQ,IACvC,EACN,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,UAAU,EAAE,CAAC,YACtC,QAAQ,GACL,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Confirm.d.ts","sourceRoot":"","sources":["../../../src/ui/components/Confirm.tsx"],"names":[],"mappings":"AAEA,UAAU,YAAY;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;CACnC;AAED,wBAAgB,OAAO,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,YAAY,2CAoB3D"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text, useInput } from 'ink';
|
|
3
|
+
export function Confirm({ message, onConfirm }) {
|
|
4
|
+
useInput((input) => {
|
|
5
|
+
if (input.toLowerCase() === 'y') {
|
|
6
|
+
onConfirm(true);
|
|
7
|
+
}
|
|
8
|
+
else if (input.toLowerCase() === 'n' || input === '\r') {
|
|
9
|
+
onConfirm(false);
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
return (_jsxs(Box, { borderStyle: "single", borderColor: "yellow", paddingX: 1, children: [_jsx(Text, { color: "yellow", children: '⚠' }), _jsx(Text, { children: ` ${message} ` }), _jsx(Text, { dimColor: true, children: "[y/N]" })] }));
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=Confirm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Confirm.js","sourceRoot":"","sources":["../../../src/ui/components/Confirm.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAO1C,MAAM,UAAU,OAAO,CAAC,EAAE,OAAO,EAAE,SAAS,EAAgB;IAC1D,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE;QACjB,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE,CAAC;YAChC,SAAS,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;aAAM,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACzD,SAAS,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,MAAC,GAAG,IACF,WAAW,EAAC,QAAQ,EACpB,WAAW,EAAC,QAAQ,EACpB,QAAQ,EAAE,CAAC,aAEX,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,YAAE,GAAG,GAAQ,EACjC,KAAC,IAAI,cAAE,KAAK,OAAO,GAAG,GAAQ,EAC9B,KAAC,IAAI,IAAC,QAAQ,4BAAa,IACvB,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
interface Column {
|
|
2
|
+
key: string;
|
|
3
|
+
label: string;
|
|
4
|
+
width?: number;
|
|
5
|
+
}
|
|
6
|
+
interface DataTableProps {
|
|
7
|
+
columns: Column[];
|
|
8
|
+
rows: Array<Record<string, string>>;
|
|
9
|
+
}
|
|
10
|
+
export declare function DataTable({ columns, rows }: DataTableProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=DataTable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTable.d.ts","sourceRoot":"","sources":["../../../src/ui/components/DataTable.tsx"],"names":[],"mappings":"AAEA,UAAU,MAAM;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,cAAc;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACrC;AAkBD,wBAAgB,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,cAAc,2CAwB1D"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from 'ink';
|
|
3
|
+
function computeWidths(columns, rows) {
|
|
4
|
+
return columns.map((col) => {
|
|
5
|
+
if (col.width)
|
|
6
|
+
return col.width;
|
|
7
|
+
let max = col.label.length;
|
|
8
|
+
for (const row of rows) {
|
|
9
|
+
const val = row[col.key] ?? '';
|
|
10
|
+
if (val.length > max)
|
|
11
|
+
max = val.length;
|
|
12
|
+
}
|
|
13
|
+
return max;
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
function pad(str, width) {
|
|
17
|
+
return str + ' '.repeat(Math.max(0, width - str.length));
|
|
18
|
+
}
|
|
19
|
+
export function DataTable({ columns, rows }) {
|
|
20
|
+
const widths = computeWidths(columns, rows);
|
|
21
|
+
const topBorder = '┌' + widths.map(w => '─'.repeat(w + 2)).join('┬') + '┐';
|
|
22
|
+
const headerSep = '├' + widths.map(w => '─'.repeat(w + 2)).join('┼') + '┤';
|
|
23
|
+
const bottomBorder = '└' + widths.map(w => '─'.repeat(w + 2)).join('┴') + '┘';
|
|
24
|
+
const headerRow = '│' + columns.map((col, i) => ` ${pad(col.label, widths[i])} `).join('│') + '│';
|
|
25
|
+
const dataRows = rows.map(row => '│' + columns.map((col, i) => ` ${pad(row[col.key] ?? '', widths[i])} `).join('│') + '│');
|
|
26
|
+
return (_jsxs(Box, { flexDirection: "column", paddingLeft: 2, children: [_jsx(Text, { children: topBorder }), _jsx(Text, { bold: true, children: headerRow }), _jsx(Text, { children: headerSep }), dataRows.map((row, i) => (_jsx(Text, { children: row }, i))), _jsx(Text, { children: bottomBorder })] }));
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=DataTable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTable.js","sourceRoot":"","sources":["../../../src/ui/components/DataTable.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Divider.d.ts","sourceRoot":"","sources":["../../../src/ui/components/Divider.tsx"],"names":[],"mappings":"AAEA,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,OAAO,CAAC,EAAE,KAAU,EAAE,EAAE,YAAY,2CAEnD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Divider.js","sourceRoot":"","sources":["../../../src/ui/components/Divider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAM3B,MAAM,UAAU,OAAO,CAAC,EAAE,KAAK,GAAG,EAAE,EAAgB;IAClD,OAAO,KAAC,IAAI,IAAC,QAAQ,kBAAE,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAQ,CAAC;AAC1D,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
interface KeyValueItem {
|
|
2
|
+
key: string;
|
|
3
|
+
value: string;
|
|
4
|
+
}
|
|
5
|
+
interface KeyValueProps {
|
|
6
|
+
items: KeyValueItem[];
|
|
7
|
+
keyWidth?: number;
|
|
8
|
+
}
|
|
9
|
+
export declare function KeyValue({ items, keyWidth }: KeyValueProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=KeyValue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeyValue.d.ts","sourceRoot":"","sources":["../../../src/ui/components/KeyValue.tsx"],"names":[],"mappings":"AAEA,UAAU,YAAY;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,aAAa;IACrB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,aAAa,2CAa1D"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from 'ink';
|
|
3
|
+
export function KeyValue({ items, keyWidth }) {
|
|
4
|
+
const width = keyWidth ?? Math.max(...items.map(item => item.key.length)) + 2;
|
|
5
|
+
return (_jsx(Box, { flexDirection: "column", paddingLeft: 2, children: items.map((item, i) => (_jsxs(Box, { children: [_jsx(Text, { dimColor: true, children: item.key.padEnd(width) }), _jsx(Text, { children: item.value })] }, i))) }));
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=KeyValue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeyValue.js","sourceRoot":"","sources":["../../../src/ui/components/KeyValue.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAYhC,MAAM,UAAU,QAAQ,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAiB;IACzD,MAAM,KAAK,GAAG,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;IAE9E,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,WAAW,EAAE,CAAC,YACvC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACtB,MAAC,GAAG,eACF,KAAC,IAAI,IAAC,QAAQ,kBAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAQ,EAC9C,KAAC,IAAI,cAAE,IAAI,CAAC,KAAK,GAAQ,KAFjB,CAAC,CAGL,CACP,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
interface SectionProps {
|
|
3
|
+
title: string;
|
|
4
|
+
children?: ReactNode;
|
|
5
|
+
}
|
|
6
|
+
export declare function Section({ title, children }: SectionProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=Section.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Section.d.ts","sourceRoot":"","sources":["../../../src/ui/components/Section.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,OAAO,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,YAAY,2CAYxD"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from 'ink';
|
|
3
|
+
export function Section({ title, children }) {
|
|
4
|
+
return (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { bold: true, children: ` ${title}` }), _jsx(Text, { dimColor: true, children: ' ' + '─'.repeat(60) }), children && (_jsx(Box, { flexDirection: "column", marginLeft: 2, children: children }))] }));
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=Section.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Section.js","sourceRoot":"","sources":["../../../src/ui/components/Section.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAQhC,MAAM,UAAU,OAAO,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAgB;IACvD,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,aACtC,KAAC,IAAI,IAAC,IAAI,kBAAE,KAAK,KAAK,EAAE,GAAQ,EAChC,KAAC,IAAI,IAAC,QAAQ,kBAAE,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAQ,EAC5C,QAAQ,IAAI,CACX,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,UAAU,EAAE,CAAC,YACtC,QAAQ,GACL,CACP,IACG,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface MenuItem {
|
|
2
|
+
label: string;
|
|
3
|
+
description: string;
|
|
4
|
+
value: string;
|
|
5
|
+
children?: MenuItem[];
|
|
6
|
+
}
|
|
7
|
+
interface SelectMenuProps {
|
|
8
|
+
items: MenuItem[];
|
|
9
|
+
onSelect: (item: MenuItem) => void;
|
|
10
|
+
onExit?: () => void;
|
|
11
|
+
}
|
|
12
|
+
export declare function SelectMenu({ items, onSelect, onExit }: SelectMenuProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=SelectMenu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectMenu.d.ts","sourceRoot":"","sources":["../../../src/ui/components/SelectMenu.tsx"],"names":[],"mappings":"AAGA,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;CACvB;AAED,UAAU,eAAe;IACvB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,eAAe,2CA2DtE"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { Box, Text, useInput } from 'ink';
|
|
4
|
+
export function SelectMenu({ items, onSelect, onExit }) {
|
|
5
|
+
const [cursor, setCursor] = useState(0);
|
|
6
|
+
const [stack, setStack] = useState([]);
|
|
7
|
+
const currentItems = stack.length > 0 ? stack[stack.length - 1] : items;
|
|
8
|
+
const hasParent = stack.length > 0;
|
|
9
|
+
const displayItems = [];
|
|
10
|
+
if (hasParent) {
|
|
11
|
+
displayItems.push({ label: '\u2190 Back', description: 'Return to previous menu', isBack: true });
|
|
12
|
+
}
|
|
13
|
+
for (const item of currentItems) {
|
|
14
|
+
displayItems.push({ label: item.label, description: item.description, item });
|
|
15
|
+
}
|
|
16
|
+
useInput((input, key) => {
|
|
17
|
+
if (key.upArrow) {
|
|
18
|
+
setCursor(prev => (prev > 0 ? prev - 1 : displayItems.length - 1));
|
|
19
|
+
}
|
|
20
|
+
else if (key.downArrow) {
|
|
21
|
+
setCursor(prev => (prev < displayItems.length - 1 ? prev + 1 : 0));
|
|
22
|
+
}
|
|
23
|
+
else if (key.return) {
|
|
24
|
+
const selected = displayItems[cursor];
|
|
25
|
+
if (!selected)
|
|
26
|
+
return;
|
|
27
|
+
if (selected.isBack) {
|
|
28
|
+
setStack(prev => prev.slice(0, -1));
|
|
29
|
+
setCursor(0);
|
|
30
|
+
}
|
|
31
|
+
else if (selected.item?.children && selected.item.children.length > 0) {
|
|
32
|
+
setStack(prev => [...prev, selected.item.children]);
|
|
33
|
+
setCursor(0);
|
|
34
|
+
}
|
|
35
|
+
else if (selected.item) {
|
|
36
|
+
onSelect(selected.item);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
else if (key.escape || input === 'q') {
|
|
40
|
+
if (hasParent) {
|
|
41
|
+
setStack(prev => prev.slice(0, -1));
|
|
42
|
+
setCursor(0);
|
|
43
|
+
}
|
|
44
|
+
else if (onExit) {
|
|
45
|
+
onExit();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
return (_jsx(Box, { flexDirection: "column", paddingLeft: 2, children: displayItems.map((entry, i) => {
|
|
50
|
+
const isActive = i === cursor;
|
|
51
|
+
const prefix = isActive ? '❯' : ' ';
|
|
52
|
+
return (_jsxs(Box, { children: [_jsx(Text, { color: isActive ? 'cyan' : undefined, bold: isActive, children: `${prefix} ${entry.label.padEnd(16)}` }), _jsx(Text, { dimColor: true, children: entry.description })] }, i));
|
|
53
|
+
}) }));
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=SelectMenu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectMenu.js","sourceRoot":"","sources":["../../../src/ui/components/SelectMenu.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShellOutput.d.ts","sourceRoot":"","sources":["../../../src/ui/components/ShellOutput.tsx"],"names":[],"mappings":"AAEA,UAAU,gBAAgB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,WAAW,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,gBAAgB,2CAalE"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from 'ink';
|
|
3
|
+
export function ShellOutput({ content, maxLines }) {
|
|
4
|
+
let lines = content.split('\n');
|
|
5
|
+
if (maxLines && lines.length > maxLines) {
|
|
6
|
+
lines = lines.slice(0, maxLines);
|
|
7
|
+
}
|
|
8
|
+
return (_jsx(Box, { flexDirection: "column", paddingLeft: 2, children: lines.map((line, i) => (_jsx(Text, { dimColor: true, children: `│ ${line}` }, i))) }));
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=ShellOutput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShellOutput.js","sourceRoot":"","sources":["../../../src/ui/components/ShellOutput.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAOhC,MAAM,UAAU,WAAW,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAoB;IACjE,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;QACxC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,WAAW,EAAE,CAAC,YACvC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACtB,KAAC,IAAI,IAAS,QAAQ,kBAAE,KAAK,IAAI,EAAE,IAAxB,CAAC,CAA+B,CAC5C,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../../../src/ui/components/Spinner.tsx"],"names":[],"mappings":"AAGA,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,YAAY,2CAO9C"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from 'ink';
|
|
3
|
+
import InkSpinner from 'ink-spinner';
|
|
4
|
+
export function Spinner({ label }) {
|
|
5
|
+
return (_jsxs(Box, { paddingLeft: 2, children: [_jsx(Text, { color: "cyan", children: _jsx(InkSpinner, { type: "dots" }) }), _jsx(Text, { children: ` ${label}` })] }));
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=Spinner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Spinner.js","sourceRoot":"","sources":["../../../src/ui/components/Spinner.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,UAAU,MAAM,aAAa,CAAC;AAMrC,MAAM,UAAU,OAAO,CAAC,EAAE,KAAK,EAAgB;IAC7C,OAAO,CACL,MAAC,GAAG,IAAC,WAAW,EAAE,CAAC,aACjB,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAC,KAAC,UAAU,IAAC,IAAI,EAAC,MAAM,GAAG,GAAO,EACpD,KAAC,IAAI,cAAE,IAAI,KAAK,EAAE,GAAQ,IACtB,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
interface StatusBoxProps {
|
|
2
|
+
variant: 'error' | 'success' | 'warning';
|
|
3
|
+
title: string;
|
|
4
|
+
lines?: string[];
|
|
5
|
+
}
|
|
6
|
+
export declare function StatusBox({ variant, title, lines }: StatusBoxProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=StatusBox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatusBox.d.ts","sourceRoot":"","sources":["../../../src/ui/components/StatusBox.tsx"],"names":[],"mappings":"AAEA,UAAU,cAAc;IACtB,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAQD,wBAAgB,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,cAAc,2CAelE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from 'ink';
|
|
3
|
+
const variants = {
|
|
4
|
+
error: { symbol: '✘', color: 'red' },
|
|
5
|
+
success: { symbol: '✔', color: 'green' },
|
|
6
|
+
warning: { symbol: '⚠', color: 'yellow' },
|
|
7
|
+
};
|
|
8
|
+
export function StatusBox({ variant, title, lines }) {
|
|
9
|
+
const { symbol, color } = variants[variant];
|
|
10
|
+
return (_jsxs(Box, { borderStyle: "single", borderColor: color, flexDirection: "column", paddingX: 1, children: [_jsx(Text, { color: color, bold: true, children: `${symbol} ${title}` }), lines?.map((line, i) => (_jsx(Text, { dimColor: true, children: ` ${line}` }, i)))] }));
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=StatusBox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatusBox.js","sourceRoot":"","sources":["../../../src/ui/components/StatusBox.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAQhC,MAAM,QAAQ,GAAG;IACf,KAAK,EAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,KAAc,EAAE;IAC/C,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,OAAgB,EAAE;IACjD,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAiB,EAAE;CACnD,CAAC;AAEF,MAAM,UAAU,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAkB;IACjE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5C,OAAO,CACL,MAAC,GAAG,IACF,WAAW,EAAC,QAAQ,EACpB,WAAW,EAAE,KAAK,EAClB,aAAa,EAAC,QAAQ,EACtB,QAAQ,EAAE,CAAC,aAEX,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,EAAE,IAAI,kBAAE,GAAG,MAAM,IAAI,KAAK,EAAE,GAAQ,EACrD,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACvB,KAAC,IAAI,IAAS,QAAQ,kBAAE,KAAK,IAAI,EAAE,IAAxB,CAAC,CAA+B,CAC5C,CAAC,IACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
interface StatusLineProps {
|
|
2
|
+
status: 'ok' | 'fail' | 'warn' | 'info';
|
|
3
|
+
label: string;
|
|
4
|
+
detail?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function StatusLine({ status, label, detail }: StatusLineProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=StatusLine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatusLine.d.ts","sourceRoot":"","sources":["../../../src/ui/components/StatusLine.tsx"],"names":[],"mappings":"AAEA,UAAU,eAAe;IACvB,MAAM,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AASD,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,eAAe,2CAapE"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from 'ink';
|
|
3
|
+
const icons = {
|
|
4
|
+
ok: { symbol: '✔', color: 'green' },
|
|
5
|
+
fail: { symbol: '✘', color: 'red' },
|
|
6
|
+
warn: { symbol: '⚠', color: 'yellow' },
|
|
7
|
+
info: { symbol: 'ℹ', color: 'blue' },
|
|
8
|
+
};
|
|
9
|
+
export function StatusLine({ status, label, detail }) {
|
|
10
|
+
const { symbol, color } = icons[status];
|
|
11
|
+
return (_jsxs(Box, { paddingLeft: 2, children: [_jsx(Text, { color: color, children: symbol }), _jsx(Text, { children: ` ${label}` }), detail && (_jsx(Box, { flexGrow: 1, justifyContent: "flex-end", children: _jsx(Text, { dimColor: true, children: detail }) }))] }));
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=StatusLine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatusLine.js","sourceRoot":"","sources":["../../../src/ui/components/StatusLine.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAQhC,MAAM,KAAK,GAAyE;IAClF,EAAE,EAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE;IACrC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE;IACnC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE;IACtC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE;CACrC,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAmB;IACnE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IACxC,OAAO,CACL,MAAC,GAAG,IAAC,WAAW,EAAE,CAAC,aACjB,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,YAAG,MAAM,GAAQ,EACnC,KAAC,IAAI,cAAE,IAAI,KAAK,EAAE,GAAQ,EACzB,MAAM,IAAI,CACT,KAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,cAAc,EAAC,UAAU,YACzC,KAAC,IAAI,IAAC,QAAQ,kBAAE,MAAM,GAAQ,GAC1B,CACP,IACG,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
interface Step {
|
|
2
|
+
label: string;
|
|
3
|
+
status: 'done' | 'running' | 'pending' | 'error';
|
|
4
|
+
detail?: string;
|
|
5
|
+
}
|
|
6
|
+
interface StepListProps {
|
|
7
|
+
steps: Step[];
|
|
8
|
+
}
|
|
9
|
+
export declare function StepList({ steps }: StepListProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=StepList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StepList.d.ts","sourceRoot":"","sources":["../../../src/ui/components/StepList.tsx"],"names":[],"mappings":"AAGA,UAAU,IAAI;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,aAAa;IACrB,KAAK,EAAE,IAAI,EAAE,CAAC;CACf;AAeD,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE,aAAa,2CAgBhD"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from 'ink';
|
|
3
|
+
import InkSpinner from 'ink-spinner';
|
|
4
|
+
function StepIcon({ status }) {
|
|
5
|
+
switch (status) {
|
|
6
|
+
case 'done':
|
|
7
|
+
return _jsx(Text, { color: "green", children: "\u2714" });
|
|
8
|
+
case 'running':
|
|
9
|
+
return _jsx(Text, { color: "cyan", children: _jsx(InkSpinner, { type: "dots" }) });
|
|
10
|
+
case 'error':
|
|
11
|
+
return _jsx(Text, { color: "red", children: "\u2718" });
|
|
12
|
+
case 'pending':
|
|
13
|
+
return _jsx(Text, { dimColor: true, children: "\u25E6" });
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export function StepList({ steps }) {
|
|
17
|
+
return (_jsx(Box, { flexDirection: "column", paddingLeft: 2, children: steps.map((step, i) => (_jsxs(Box, { children: [_jsx(StepIcon, { status: step.status }), _jsx(Text, { dimColor: step.status === 'pending', children: ` ${step.label}` }), step.detail && (_jsx(Box, { flexGrow: 1, justifyContent: "flex-end", children: _jsx(Text, { dimColor: true, children: step.detail }) }))] }, i))) }));
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=StepList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StepList.js","sourceRoot":"","sources":["../../../src/ui/components/StepList.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,UAAU,MAAM,aAAa,CAAC;AAYrC,SAAS,QAAQ,CAAC,EAAE,MAAM,EAA8B;IACtD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM;YACT,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,uBAAS,CAAC;QACtC,KAAK,SAAS;YACZ,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAC,KAAC,UAAU,IAAC,IAAI,EAAC,MAAM,GAAG,GAAO,CAAC;QAC9D,KAAK,OAAO;YACV,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,KAAK,uBAAS,CAAC;QACpC,KAAK,SAAS;YACZ,OAAO,KAAC,IAAI,IAAC,QAAQ,6BAAS,CAAC;IACnC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,EAAE,KAAK,EAAiB;IAC/C,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,WAAW,EAAE,CAAC,YACvC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACtB,MAAC,GAAG,eACF,KAAC,QAAQ,IAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAI,EACjC,KAAC,IAAI,IAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,KAAK,SAAS,YAAG,IAAI,IAAI,CAAC,KAAK,EAAE,GAAQ,EACnE,IAAI,CAAC,MAAM,IAAI,CACd,KAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,cAAc,EAAC,UAAU,YACzC,KAAC,IAAI,IAAC,QAAQ,kBAAE,IAAI,CAAC,MAAM,GAAQ,GAC/B,CACP,KAPO,CAAC,CAQL,CACP,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
interface SubSectionProps {
|
|
3
|
+
title: string;
|
|
4
|
+
children?: ReactNode;
|
|
5
|
+
}
|
|
6
|
+
export declare function SubSection({ title, children }: SubSectionProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=SubSection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubSection.d.ts","sourceRoot":"","sources":["../../../src/ui/components/SubSection.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,UAAU,eAAe;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,eAAe,2CAW9D"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from 'ink';
|
|
3
|
+
export function SubSection({ title, children }) {
|
|
4
|
+
return (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { dimColor: true, bold: true, children: ` ${title}` }), children && (_jsx(Box, { flexDirection: "column", marginLeft: 2, children: children }))] }));
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=SubSection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubSection.js","sourceRoot":"","sources":["../../../src/ui/components/SubSection.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAQhC,MAAM,UAAU,UAAU,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAmB;IAC7D,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,aACtC,KAAC,IAAI,IAAC,QAAQ,QAAC,IAAI,kBAAE,KAAK,KAAK,EAAE,GAAQ,EACxC,QAAQ,IAAI,CACX,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,UAAU,EAAE,CAAC,YACtC,QAAQ,GACL,CACP,IACG,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
interface TextInputProps {
|
|
2
|
+
label: string;
|
|
3
|
+
value: string;
|
|
4
|
+
onChange: (value: string) => void;
|
|
5
|
+
onSubmit: (value: string) => void;
|
|
6
|
+
mask?: boolean;
|
|
7
|
+
placeholder?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function TextInput({ label, value, onChange, onSubmit, mask, placeholder }: TextInputProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=TextInput.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextInput.d.ts","sourceRoot":"","sources":["../../../src/ui/components/TextInput.tsx"],"names":[],"mappings":"AAIA,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,cAAc,2CAahG"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from 'ink';
|
|
3
|
+
import InkTextInput from 'ink-text-input';
|
|
4
|
+
export function TextInput({ label, value, onChange, onSubmit, mask, placeholder }) {
|
|
5
|
+
return (_jsxs(Box, { children: [_jsxs(Text, { bold: true, children: [label, ": "] }), _jsx(InkTextInput, { value: value, onChange: onChange, onSubmit: onSubmit, mask: mask ? '*' : undefined, placeholder: placeholder })] }));
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=TextInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextInput.js","sourceRoot":"","sources":["../../../src/ui/components/TextInput.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAW1C,MAAM,UAAU,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAkB;IAC/F,OAAO,CACL,MAAC,GAAG,eACF,MAAC,IAAI,IAAC,IAAI,mBAAE,KAAK,UAAU,EAC3B,KAAC,YAAY,IACX,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAC5B,WAAW,EAAE,WAAW,GACxB,IACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export { AppShell } from './AppShell.js';
|
|
2
|
+
export { Section } from './Section.js';
|
|
3
|
+
export { SubSection } from './SubSection.js';
|
|
4
|
+
export { StatusLine } from './StatusLine.js';
|
|
5
|
+
export { StatusBox } from './StatusBox.js';
|
|
6
|
+
export { StepList } from './StepList.js';
|
|
7
|
+
export { DataTable } from './DataTable.js';
|
|
8
|
+
export { KeyValue } from './KeyValue.js';
|
|
9
|
+
export { ShellOutput } from './ShellOutput.js';
|
|
10
|
+
export { Spinner } from './Spinner.js';
|
|
11
|
+
export { Confirm } from './Confirm.js';
|
|
12
|
+
export { Divider } from './Divider.js';
|
|
13
|
+
export { SelectMenu } from './SelectMenu.js';
|
|
14
|
+
export type { MenuItem } from './SelectMenu.js';
|
|
15
|
+
export { TextInput } from './TextInput.js';
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export { AppShell } from './AppShell.js';
|
|
2
|
+
export { Section } from './Section.js';
|
|
3
|
+
export { SubSection } from './SubSection.js';
|
|
4
|
+
export { StatusLine } from './StatusLine.js';
|
|
5
|
+
export { StatusBox } from './StatusBox.js';
|
|
6
|
+
export { StepList } from './StepList.js';
|
|
7
|
+
export { DataTable } from './DataTable.js';
|
|
8
|
+
export { KeyValue } from './KeyValue.js';
|
|
9
|
+
export { ShellOutput } from './ShellOutput.js';
|
|
10
|
+
export { Spinner } from './Spinner.js';
|
|
11
|
+
export { Confirm } from './Confirm.js';
|
|
12
|
+
export { Divider } from './Divider.js';
|
|
13
|
+
export { SelectMenu } from './SelectMenu.js';
|
|
14
|
+
export { TextInput } from './TextInput.js';
|
|
15
|
+
//# sourceMappingURL=index.js.map
|