@termix-ssh/plugin-sdk 1.0.4 → 1.0.5
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/CHANGELOG.md +11 -0
- package/README.md +1 -0
- package/cli/commands/build.mjs +7 -7
- package/cli/commands/migrations.mjs +2 -2
- package/cli/commands/validate.mjs +5 -0
- package/cli/index.mjs +0 -0
- package/dist/changelog.d.ts +3 -1
- package/dist/changelog.js +12 -2
- package/dist/db.d.ts +1 -1
- package/dist/db.js +1 -1
- package/dist/ddl.js +4 -1
- package/dist/host/{chunk-O2OHNVFX.js → chunk-KOOUKYW3.js} +1 -1
- package/dist/host/{chunk-F5RZH6HE.js → chunk-OEOKIKXC.js} +7 -9
- package/dist/host/{chunk-RU4E5XLY.js → chunk-VETPF5WI.js} +28 -147
- package/dist/host/core-classes.json +1 -1
- package/dist/host/{linked-server-4VWYYABP.js → linked-server-RWBK427T.js} +1 -1
- package/dist/host/{rbac-api-WIJVZH3M.js → rbac-api-UJGGTQVA.js} +1 -1
- package/dist/host/testing-host.js +3 -3
- package/dist/host/types/src/types/credential-sidebar-preferences.d.ts +1 -1
- package/dist/host/types/src/ui/lib/error-message.d.ts +1 -1
- package/dist/host/types/src/ui/main-axios.d.ts +0 -2
- package/dist/host/ui.js +15 -8
- package/dist/host/{use-permissions-KIQCJ35M.js → use-permissions-P3DC7ZDR.js} +1 -1
- package/dist/host-commands.js +1 -1
- package/package.json +13 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.0.5
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- `execCommand` timeout errors no longer include the command, which could hold a sudo password
|
|
8
|
+
- `termix-plugin validate` fails when a plugin ships migrations for some database engines but not all three
|
|
9
|
+
- `termix-plugin migrations` loads the table definitions from a path with a `#` or other URL characters in it
|
|
10
|
+
- Text, json and encrypted columns are `longtext` on MySQL in new migrations, so they are no longer capped at 64KB. Existing migrations keep `text`
|
|
11
|
+
- `i18next`, `react-dom`, `react-i18next` and `sonner` are optional peer dependencies, so npm stops installing them into backend-only plugins
|
|
12
|
+
- `termix-plugin validate` accepts a beta version like `1.1.0-beta.1` when the changelog's newest release is `1.1.0` or older, so beta releases pass
|
|
13
|
+
|
|
3
14
|
## 1.0.4
|
|
4
15
|
|
|
5
16
|
### Fixed
|
package/README.md
CHANGED
|
@@ -28,6 +28,7 @@ npm install --save-dev @termix-ssh/plugin-sdk
|
|
|
28
28
|
|
|
29
29
|
```bash
|
|
30
30
|
npx termix-plugin build # bundle dist/backend.js and dist/frontend.js
|
|
31
|
+
npx termix-plugin patch # apply the plugin's dependency patches (build does this too)
|
|
31
32
|
npx termix-plugin test # run the plugin's Vitest suite
|
|
32
33
|
npx termix-plugin validate # check manifest.json and the files it names
|
|
33
34
|
npx termix-plugin openapi # write dist/openapi.json from @openapi comments
|
package/cli/commands/build.mjs
CHANGED
|
@@ -108,13 +108,6 @@ const HOST_DIR = path.join(
|
|
|
108
108
|
const THEME_CSS = path.join(HOST_DIR, "theme.css");
|
|
109
109
|
const CORE_CLASSES = path.join(HOST_DIR, "core-classes.json");
|
|
110
110
|
|
|
111
|
-
/**
|
|
112
|
-
* Compiles the Tailwind classes the plugin's frontend uses into
|
|
113
|
-
* dist/frontend.css, against the theme core ships in the SDK. Core only
|
|
114
|
-
* compiles its own classes, so a class no core file happens to use would
|
|
115
|
-
* otherwise have no CSS at all. Appended to whatever CSS the bundle already
|
|
116
|
-
* produced (a library's stylesheet the plugin imports).
|
|
117
|
-
*/
|
|
118
111
|
/**
|
|
119
112
|
* Moves a plugin's Tailwind layers under their own names. Core orders
|
|
120
113
|
* termix-plugin-utilities above its base styles and below its own utilities,
|
|
@@ -136,6 +129,13 @@ function readCoreClasses() {
|
|
|
136
129
|
return new Set(JSON.parse(fs.readFileSync(CORE_CLASSES, "utf8")));
|
|
137
130
|
}
|
|
138
131
|
|
|
132
|
+
/**
|
|
133
|
+
* Compiles the Tailwind classes the plugin's frontend uses into
|
|
134
|
+
* dist/frontend.css, against the theme core ships in the SDK. Core only
|
|
135
|
+
* compiles its own classes, so a class no core file happens to use would
|
|
136
|
+
* otherwise have no CSS at all. Appended to whatever CSS the bundle already
|
|
137
|
+
* produced (a library's stylesheet the plugin imports).
|
|
138
|
+
*/
|
|
139
139
|
export async function buildTailwind(cwd, outDir) {
|
|
140
140
|
const { compile, optimize } = await import("@tailwindcss/node");
|
|
141
141
|
const { Scanner } = await import("@tailwindcss/oxide");
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
|
|
18
18
|
import fs from "node:fs";
|
|
19
19
|
import path from "node:path";
|
|
20
|
-
import { fileURLToPath } from "node:url";
|
|
20
|
+
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
21
21
|
import * as esbuild from "esbuild";
|
|
22
22
|
import { BACKEND_EXTERNALS } from "../lib/externals.mjs";
|
|
23
23
|
import { readManifest, resolveEntry } from "../lib/plugin-dir.mjs";
|
|
@@ -53,7 +53,7 @@ async function loadDefinitions(cwd) {
|
|
|
53
53
|
external: BACKEND_EXTERNALS,
|
|
54
54
|
});
|
|
55
55
|
|
|
56
|
-
const module = await import(
|
|
56
|
+
const module = await import(pathToFileURL(outfile).href);
|
|
57
57
|
const tables = module.tables ?? module.default;
|
|
58
58
|
if (!Array.isArray(tables)) {
|
|
59
59
|
throw new Error(
|
|
@@ -218,6 +218,11 @@ async function validateMigrations(cwd, pluginId) {
|
|
|
218
218
|
const present = DIALECTS.filter((dialect) =>
|
|
219
219
|
fs.existsSync(path.join(root, dialect)),
|
|
220
220
|
);
|
|
221
|
+
for (const dialect of DIALECTS) {
|
|
222
|
+
if (present.length > 0 && !present.includes(dialect)) {
|
|
223
|
+
problems.push(`migrations/${dialect} is missing`);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
221
226
|
|
|
222
227
|
const byDialect = new Map();
|
|
223
228
|
for (const dialect of present) {
|
package/cli/index.mjs
CHANGED
|
File without changes
|
package/dist/changelog.d.ts
CHANGED
|
@@ -52,7 +52,9 @@ export declare function parseChangelog(markdown: string): {
|
|
|
52
52
|
};
|
|
53
53
|
/**
|
|
54
54
|
* Checks a CHANGELOG.md. With a manifest version, the newest release has to
|
|
55
|
-
* be that version, so a release never ships without its notes.
|
|
55
|
+
* be that version, so a release never ships without its notes. A beta like
|
|
56
|
+
* 1.1.0-beta.2 gets its notes from git, so it only needs the newest release
|
|
57
|
+
* to be 1.1.0 or older.
|
|
56
58
|
*/
|
|
57
59
|
export declare function validateChangelog(markdown: string, manifestVersion?: string): string[];
|
|
58
60
|
/**
|
package/dist/changelog.js
CHANGED
|
@@ -145,7 +145,9 @@ export function parseChangelog(markdown) {
|
|
|
145
145
|
}
|
|
146
146
|
/**
|
|
147
147
|
* Checks a CHANGELOG.md. With a manifest version, the newest release has to
|
|
148
|
-
* be that version, so a release never ships without its notes.
|
|
148
|
+
* be that version, so a release never ships without its notes. A beta like
|
|
149
|
+
* 1.1.0-beta.2 gets its notes from git, so it only needs the newest release
|
|
150
|
+
* to be 1.1.0 or older.
|
|
149
151
|
*/
|
|
150
152
|
export function validateChangelog(markdown, manifestVersion) {
|
|
151
153
|
const { changelog, problems } = parseChangelog(markdown);
|
|
@@ -154,7 +156,15 @@ export function validateChangelog(markdown, manifestVersion) {
|
|
|
154
156
|
return problems;
|
|
155
157
|
}
|
|
156
158
|
const newest = changelog.releases[0].version;
|
|
157
|
-
|
|
159
|
+
const base = manifestVersion
|
|
160
|
+
? semver.valid(semver.coerce(manifestVersion))
|
|
161
|
+
: null;
|
|
162
|
+
const betaOk = !!manifestVersion &&
|
|
163
|
+
!!semver.prerelease(manifestVersion) &&
|
|
164
|
+
!!base &&
|
|
165
|
+
!!semver.valid(newest) &&
|
|
166
|
+
semver.lte(newest, base);
|
|
167
|
+
if (manifestVersion && newest !== manifestVersion && !betaOk) {
|
|
158
168
|
problems.push(`the newest release is ${newest}, but the manifest version is ${manifestVersion}`);
|
|
159
169
|
}
|
|
160
170
|
return problems;
|
package/dist/db.d.ts
CHANGED
|
@@ -37,7 +37,7 @@ interface Builder<T extends PluginColumn = PluginColumn> {
|
|
|
37
37
|
}
|
|
38
38
|
/** Auto-incrementing surrogate key: integer on sqlite, serial, auto_increment. */
|
|
39
39
|
export declare const id: () => Builder<PluginColumn>;
|
|
40
|
-
/** Unbounded string. Never indexable: MySQL cannot index TEXT. */
|
|
40
|
+
/** Unbounded string, LONGTEXT on MySQL. Never indexable: MySQL cannot index TEXT. */
|
|
41
41
|
export declare const text: () => Builder<PluginColumn>;
|
|
42
42
|
/** Bounded string. Indexable on every engine. */
|
|
43
43
|
export declare const varchar: (length?: number) => Builder<PluginColumn>;
|
package/dist/db.js
CHANGED
|
@@ -28,7 +28,7 @@ function builder(column) {
|
|
|
28
28
|
}
|
|
29
29
|
/** Auto-incrementing surrogate key: integer on sqlite, serial, auto_increment. */
|
|
30
30
|
export const id = () => builder({ type: "id", primaryKey: true, notNull: true });
|
|
31
|
-
/** Unbounded string. Never indexable: MySQL cannot index TEXT. */
|
|
31
|
+
/** Unbounded string, LONGTEXT on MySQL. Never indexable: MySQL cannot index TEXT. */
|
|
32
32
|
export const text = () => builder({ type: "text" });
|
|
33
33
|
/** Bounded string. Indexable on every engine. */
|
|
34
34
|
export const varchar = (length = KEY_LENGTH) => builder({ type: "varchar", length });
|
package/dist/ddl.js
CHANGED
|
@@ -67,10 +67,13 @@ function columnType(dialect, column, keyed) {
|
|
|
67
67
|
// text/json column, so in practice this only catches a primary key.
|
|
68
68
|
if (keyed && dialect !== "sqlite")
|
|
69
69
|
return `varchar(${KEY_LENGTH})`;
|
|
70
|
+
// MySQL TEXT stops at 64KB, so free text, json and secrets go long.
|
|
71
|
+
if (dialect === "mysql" && column.type !== "timestamp")
|
|
72
|
+
return "longtext";
|
|
70
73
|
return "text";
|
|
71
74
|
}
|
|
72
75
|
}
|
|
73
|
-
/** Column types that are TEXT on MySQL when nothing keys them. */
|
|
76
|
+
/** Column types that are TEXT or LONGTEXT on MySQL when nothing keys them. */
|
|
74
77
|
const TEXT_ON_MYSQL = new Set([
|
|
75
78
|
"text",
|
|
76
79
|
"json",
|
|
@@ -21,7 +21,7 @@ var inFlight = null;
|
|
|
21
21
|
function load() {
|
|
22
22
|
if (cache) return Promise.resolve(cache);
|
|
23
23
|
if (inFlight) return inFlight;
|
|
24
|
-
inFlight = import("./rbac-api-
|
|
24
|
+
inFlight = import("./rbac-api-UJGGTQVA.js").then(({ getMyPermissions }) => getMyPermissions()).then((result) => {
|
|
25
25
|
cache = {
|
|
26
26
|
permissions: result.permissions ?? [],
|
|
27
27
|
isAdmin: !!result.isAdmin
|
|
@@ -3801,7 +3801,7 @@ var {
|
|
|
3801
3801
|
|
|
3802
3802
|
// src/ui/main-axios.ts
|
|
3803
3803
|
import { toast } from "sonner";
|
|
3804
|
-
import
|
|
3804
|
+
import i18n2 from "i18next";
|
|
3805
3805
|
|
|
3806
3806
|
// src/ui/lib/base-path.ts
|
|
3807
3807
|
function getBasePath() {
|
|
@@ -4998,12 +4998,13 @@ async function logActivity(type, hostId, hostName) {
|
|
|
4998
4998
|
}
|
|
4999
4999
|
|
|
5000
5000
|
// src/ui/api/rbac-api.ts
|
|
5001
|
+
import i18n from "i18next";
|
|
5001
5002
|
async function getSharingTarget(hostId, syncId) {
|
|
5002
5003
|
const api = await getConnectedRemoteApi();
|
|
5003
5004
|
if (!api || !syncId) return { api: rbacApi, hostId };
|
|
5004
5005
|
const remoteHostId = await resolveRemoteHostId(syncId);
|
|
5005
5006
|
if (remoteHostId === null) {
|
|
5006
|
-
throw new Error("
|
|
5007
|
+
throw new Error(i18n.t("errors.syncedHostMissing"));
|
|
5007
5008
|
}
|
|
5008
5009
|
return { api, hostId: remoteHostId };
|
|
5009
5010
|
}
|
|
@@ -5012,7 +5013,7 @@ async function getSharedCopyTarget(hostId, syncId) {
|
|
|
5012
5013
|
const api = await getConnectedRemoteApi();
|
|
5013
5014
|
const remoteHostId = api ? await resolveRemoteHostId(syncId) : null;
|
|
5014
5015
|
if (!api || remoteHostId === null) {
|
|
5015
|
-
throw new Error("
|
|
5016
|
+
throw new Error(i18n.t("errors.linkedServerUnreachable"));
|
|
5016
5017
|
}
|
|
5017
5018
|
return { api, hostId: remoteHostId };
|
|
5018
5019
|
}
|
|
@@ -5037,7 +5038,7 @@ async function updateRole(roleId, roleData) {
|
|
|
5037
5038
|
try {
|
|
5038
5039
|
const response = await rbacApi.put(`/rbac/roles/${roleId}`, roleData);
|
|
5039
5040
|
if (roleData.permissions) {
|
|
5040
|
-
const { notifyPermissionsChanged } = await import("./use-permissions-
|
|
5041
|
+
const { notifyPermissionsChanged } = await import("./use-permissions-P3DC7ZDR.js");
|
|
5041
5042
|
notifyPermissionsChanged();
|
|
5042
5043
|
}
|
|
5043
5044
|
return response.data;
|
|
@@ -5293,7 +5294,6 @@ if (isElectron()) {
|
|
|
5293
5294
|
if (!localStorage.getItem(key)) {
|
|
5294
5295
|
electronSettingsCache.set(key, value);
|
|
5295
5296
|
localStorage.setItem(key, value);
|
|
5296
|
-
console.log(`[Electron] Loaded setting ${key} from main process`);
|
|
5297
5297
|
} else {
|
|
5298
5298
|
electronSettingsCache.set(key, localStorage.getItem(key));
|
|
5299
5299
|
}
|
|
@@ -5319,7 +5319,6 @@ function setCookie(name, value, days = 7) {
|
|
|
5319
5319
|
console.error(`[Electron] Failed to persist setting ${name}:`, err);
|
|
5320
5320
|
});
|
|
5321
5321
|
}
|
|
5322
|
-
console.log(`[Electron] Set setting: ${name}`);
|
|
5323
5322
|
} catch (error) {
|
|
5324
5323
|
console.error(`[Electron] Failed to set setting: ${name}`, error);
|
|
5325
5324
|
}
|
|
@@ -5341,7 +5340,6 @@ function getCookie(name) {
|
|
|
5341
5340
|
if (token) {
|
|
5342
5341
|
electronSettingsCache.set(name, token);
|
|
5343
5342
|
}
|
|
5344
|
-
console.log(`[Electron] Get setting: ${name} = ${token}`);
|
|
5345
5343
|
return token;
|
|
5346
5344
|
} catch (error) {
|
|
5347
5345
|
console.error(`[Electron] Failed to get setting: ${name}`, error);
|
|
@@ -5548,7 +5546,7 @@ function createApiInstance(baseURL, serviceName = "API") {
|
|
|
5548
5546
|
clearClientAuthState();
|
|
5549
5547
|
if (typeof window !== "undefined") {
|
|
5550
5548
|
console.warn("Session expired - please log in again");
|
|
5551
|
-
toast.warning(
|
|
5549
|
+
toast.warning(i18n2.t("errors.sessionExpiredLogin"));
|
|
5552
5550
|
window.dispatchEvent(new Event("termix:logout"));
|
|
5553
5551
|
}
|
|
5554
5552
|
dbHealthMonitor.reportSessionExpired();
|
|
@@ -5597,7 +5595,7 @@ function createRemoteOriginApiInstance(path) {
|
|
|
5597
5595
|
});
|
|
5598
5596
|
instance.interceptors.request.use(
|
|
5599
5597
|
async (config) => {
|
|
5600
|
-
const { getLinkedSession: getLinkedSession2 } = await import("./linked-server-
|
|
5598
|
+
const { getLinkedSession: getLinkedSession2 } = await import("./linked-server-RWBK427T.js");
|
|
5601
5599
|
const linked = await getLinkedSession2();
|
|
5602
5600
|
config.baseURL = linked ? `${linked.serverUrl}${path}` : "http://no-server-configured";
|
|
5603
5601
|
if (config.headers.set) {
|
|
@@ -2,7 +2,7 @@ const __termixNoGlob = () => ({});
|
|
|
2
2
|
import {
|
|
3
3
|
hasPermission,
|
|
4
4
|
usePermissions
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-KOOUKYW3.js";
|
|
6
6
|
import {
|
|
7
7
|
PRESETS,
|
|
8
8
|
SYNC_CHANGED_EVENT,
|
|
@@ -39,7 +39,7 @@ import {
|
|
|
39
39
|
usePluginStore,
|
|
40
40
|
useTabTypes,
|
|
41
41
|
websocketAuthProtocols
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-OEOKIKXC.js";
|
|
43
43
|
import {
|
|
44
44
|
__export,
|
|
45
45
|
define_import_meta_env_default
|
|
@@ -49009,7 +49009,8 @@ var docs_pages_default = {
|
|
|
49009
49009
|
plugins: "guide/plugins",
|
|
49010
49010
|
pluginCatalog: "plugins",
|
|
49011
49011
|
cli: "cli",
|
|
49012
|
-
develop: "develop"
|
|
49012
|
+
develop: "develop",
|
|
49013
|
+
communityRegistry: "develop/community-registry"
|
|
49013
49014
|
};
|
|
49014
49015
|
|
|
49015
49016
|
// src/ui/lib/docs.ts
|
|
@@ -50473,12 +50474,8 @@ var en_default = {
|
|
|
50473
50474
|
offline: "Offline",
|
|
50474
50475
|
unknown: "Unknown",
|
|
50475
50476
|
continue: "Continue",
|
|
50476
|
-
maintenance: "Maintenance",
|
|
50477
|
-
degraded: "Degraded",
|
|
50478
50477
|
error: "Error",
|
|
50479
|
-
warning: "Warning",
|
|
50480
50478
|
unsavedChanges: "Unsaved changes",
|
|
50481
|
-
dismiss: "Dismiss",
|
|
50482
50479
|
more: "More",
|
|
50483
50480
|
loading: "Loading...",
|
|
50484
50481
|
host: "Host",
|
|
@@ -50488,15 +50485,7 @@ var en_default = {
|
|
|
50488
50485
|
connect: "Connect",
|
|
50489
50486
|
copied: "Copied",
|
|
50490
50487
|
connecting: "Connecting...",
|
|
50491
|
-
updateAvailable: "Update Available",
|
|
50492
|
-
appName: "Termix",
|
|
50493
50488
|
openInNewTab: "Open in New Tab",
|
|
50494
|
-
noReleases: "No Releases",
|
|
50495
|
-
updatesAndReleases: "Updates & Releases",
|
|
50496
|
-
newVersionAvailable: "A new version ({{version}}) is available.",
|
|
50497
|
-
failedToFetchUpdateInfo: "Failed to fetch update information",
|
|
50498
|
-
preRelease: "Pre-release",
|
|
50499
|
-
noReleasesFound: "No releases found.",
|
|
50500
50489
|
cancel: "Cancel",
|
|
50501
50490
|
username: "Username",
|
|
50502
50491
|
login: "Login",
|
|
@@ -50511,15 +50500,10 @@ var en_default = {
|
|
|
50511
50500
|
rename: "Rename",
|
|
50512
50501
|
edit: "Edit",
|
|
50513
50502
|
confirm: "Confirm",
|
|
50514
|
-
no: "No",
|
|
50515
|
-
or: "OR",
|
|
50516
50503
|
next: "Next",
|
|
50517
50504
|
previous: "Previous",
|
|
50518
50505
|
refresh: "Refresh",
|
|
50519
50506
|
language: "Language",
|
|
50520
|
-
checking: "Checking...",
|
|
50521
|
-
checkingDatabase: "Checking database connection...",
|
|
50522
|
-
checkingAuthentication: "Checking authentication...",
|
|
50523
50507
|
backendReconnected: "Server connection restored",
|
|
50524
50508
|
connectionDegraded: "Server connection lost, recovering\u2026",
|
|
50525
50509
|
reload: "Reload",
|
|
@@ -50528,12 +50512,6 @@ var en_default = {
|
|
|
50528
50512
|
copyFailed: "Failed to copy to clipboard",
|
|
50529
50513
|
maximize: "Maximize",
|
|
50530
50514
|
restore: "Restore",
|
|
50531
|
-
of: "of",
|
|
50532
|
-
saved: "Saved",
|
|
50533
|
-
deleted: "Deleted",
|
|
50534
|
-
deleteFailed: "Failed to delete",
|
|
50535
|
-
saveFailed: "Failed to save",
|
|
50536
|
-
required: "Required",
|
|
50537
50515
|
remove: "Remove",
|
|
50538
50516
|
add: "Add",
|
|
50539
50517
|
update: "Update",
|
|
@@ -50555,8 +50533,8 @@ var en_default = {
|
|
|
50555
50533
|
skip: "Skip setup",
|
|
50556
50534
|
next: "Next",
|
|
50557
50535
|
finish: "Done",
|
|
50558
|
-
pluginsTitle: "Choose your
|
|
50559
|
-
pluginsIntro: "Pick the
|
|
50536
|
+
pluginsTitle: "Choose your plugins",
|
|
50537
|
+
pluginsIntro: "Pick the plugins to keep. The recommended ones cover what most people need.",
|
|
50560
50538
|
pluginsUpgradeNote: "Everything you use now is kept as it is. Turn off or remove what you do not need.",
|
|
50561
50539
|
pluginsRemoveNote: "Plugins set to Remove are deleted from this server, with their data, when you continue. You can install any of them again at any time from the Plugins tab (this needs an internet connection). Pick Off to keep a plugin installed but turned off.",
|
|
50562
50540
|
pluginsUseRecommended: "Recommended",
|
|
@@ -50593,19 +50571,11 @@ var en_default = {
|
|
|
50593
50571
|
nav: {
|
|
50594
50572
|
home: "Home",
|
|
50595
50573
|
terminal: "Terminal",
|
|
50596
|
-
fileManager: "File Manager",
|
|
50597
|
-
serverStats: "Host Metrics",
|
|
50598
|
-
admin: "Admin",
|
|
50599
|
-
userProfile: "User Profile",
|
|
50600
|
-
confirmClose: "Close this active session?",
|
|
50601
50574
|
close: "Close",
|
|
50602
|
-
cancel: "Cancel",
|
|
50603
|
-
sshManager: "SSH Manager",
|
|
50604
50575
|
hostTabTitle: "{{username}}@{{ip}}:{{port}}",
|
|
50605
50576
|
copyPassword: "Copy Password",
|
|
50606
50577
|
copySudoPassword: "Copy Sudo Password",
|
|
50607
50578
|
passwordCopied: "Password copied to clipboard",
|
|
50608
|
-
noPasswordAvailable: "No password available",
|
|
50609
50579
|
failedToCopyPassword: "Failed to copy password",
|
|
50610
50580
|
refreshTab: "Refresh connection",
|
|
50611
50581
|
renameTab: "Rename tab",
|
|
@@ -50616,13 +50586,7 @@ var en_default = {
|
|
|
50616
50586
|
openInRightDock: "Open in right dock",
|
|
50617
50587
|
closeRightDock: "Close right dock",
|
|
50618
50588
|
toggleRightDock: "Toggle right dock",
|
|
50619
|
-
multiPanelHintTitle: "Work with more than one panel",
|
|
50620
|
-
multiPanelHintBody: "Keep this panel open while the sidebar is used for something else. Two ways to move it:",
|
|
50621
|
-
multiPanelHintTabHow: "Ctrl+click its rail icon, or use the button in this header.",
|
|
50622
|
-
multiPanelHintDockHow: "Right-click its rail icon, or use the panel icon in the tab bar.",
|
|
50623
|
-
sidebarSettings: "Sidebar Settings...",
|
|
50624
50589
|
hosts: "Hosts",
|
|
50625
|
-
hostManager: "Host Manager",
|
|
50626
50590
|
credentials: "Credentials",
|
|
50627
50591
|
connections: "Connections",
|
|
50628
50592
|
keepSideMenuOpen: "Keep Menu Open",
|
|
@@ -50994,8 +50958,8 @@ var en_default = {
|
|
|
50994
50958
|
showPinIconDesc: "Show a pin next to pinned hosts.",
|
|
50995
50959
|
showSharedBadge: "Shared badge",
|
|
50996
50960
|
showSharedBadgeDesc: "Show a badge on hosts shared with you.",
|
|
50997
|
-
showBadges: "
|
|
50998
|
-
showBadgesDesc: "Show badges that
|
|
50961
|
+
showBadges: "Plugin badges",
|
|
50962
|
+
showBadgesDesc: "Show badges that plugins add next to the host name.",
|
|
50999
50963
|
hostClickBehavior: "Clicking a host",
|
|
51000
50964
|
hostClickBehaviorDesc: 'What happens when you click a host that already has an open tab. Ctrl/Cmd click, middle click, or "Open in new tab" always start a new one.',
|
|
51001
50965
|
hostClickNewTab: "Always open a new tab",
|
|
@@ -51068,7 +51032,7 @@ var en_default = {
|
|
|
51068
51032
|
groupTags: "Tags & pin",
|
|
51069
51033
|
groupProxy: "Proxy",
|
|
51070
51034
|
groupJumpHosts: "Jump hosts",
|
|
51071
|
-
groupFeatureFlags: "
|
|
51035
|
+
groupFeatureFlags: "Plugin settings",
|
|
51072
51036
|
groupAdvanced: "Advanced config",
|
|
51073
51037
|
preview: "Preview",
|
|
51074
51038
|
moreHosts: "... {{count}} more hosts",
|
|
@@ -51085,7 +51049,7 @@ var en_default = {
|
|
|
51085
51049
|
failedToDeleteCredential2: "Failed to delete credential",
|
|
51086
51050
|
noFolderOption: "(No folder)",
|
|
51087
51051
|
nSelected: "{{count}} selected",
|
|
51088
|
-
featuresMenu: "
|
|
51052
|
+
featuresMenu: "Plugins",
|
|
51089
51053
|
moveMenu: "Move",
|
|
51090
51054
|
connectSelected: "Connect",
|
|
51091
51055
|
cancelSelection: "Cancel",
|
|
@@ -51101,6 +51065,7 @@ var en_default = {
|
|
|
51101
51065
|
noHostsYet: "No hosts yet",
|
|
51102
51066
|
noHostsYetHint: "Add a server to open terminals, browse files and see metrics.",
|
|
51103
51067
|
noHostsMatchSearch: "No hosts match your search",
|
|
51068
|
+
noHostSelected: "Pick a host to open this.",
|
|
51104
51069
|
searchHosts: "Search hosts...",
|
|
51105
51070
|
sortHosts: "Sort Hosts",
|
|
51106
51071
|
sortDefault: "Default Order",
|
|
@@ -51226,12 +51191,12 @@ var en_default = {
|
|
|
51226
51191
|
authFieldsAfterSave: "Save the host first, then fill in these fields.",
|
|
51227
51192
|
enablePluginFeature: "Enable {{name}}",
|
|
51228
51193
|
disablePluginFeature: "Disable {{name}}",
|
|
51229
|
-
filterFeaturesGroup: "
|
|
51194
|
+
filterFeaturesGroup: "Plugins",
|
|
51230
51195
|
localOnly: "Keep on this device only",
|
|
51231
51196
|
localOnlyDesc: "This host is not sent to the server and does not appear on your other devices.",
|
|
51232
51197
|
folderLocalOnly: "Keep on this device only",
|
|
51233
51198
|
folderLocalOnlyDesc: "This folder and every host in it stay on this device and are not sent to the server.",
|
|
51234
|
-
sudoPasswordDesc: "Used when the terminal fills a sudo prompt, and by
|
|
51199
|
+
sudoPasswordDesc: "Used when the terminal fills a sudo prompt, and by plugins that run commands with sudo.",
|
|
51235
51200
|
editorCancel: "Cancel",
|
|
51236
51201
|
editorSaving: "Saving...",
|
|
51237
51202
|
editorUpdate: "Update Host",
|
|
@@ -51248,23 +51213,15 @@ var en_default = {
|
|
|
51248
51213
|
quickActions: "Quick Actions",
|
|
51249
51214
|
navigation: "Navigation",
|
|
51250
51215
|
orShortcut: "or",
|
|
51251
|
-
hostManager: "Host Manager",
|
|
51252
|
-
hostManagerDesc: "Manage, add, or edit hosts",
|
|
51253
51216
|
addNewHost: "Add New Host",
|
|
51254
|
-
addNewHostDesc: "Register a new host",
|
|
51255
51217
|
adminSettings: "Admin Settings",
|
|
51256
|
-
adminSettingsDesc: "Configure system preferences and users",
|
|
51257
|
-
userProfile: "User Profile",
|
|
51258
|
-
userProfileDesc: "Manage your account and preferences",
|
|
51259
51218
|
addCredential: "Add Credential",
|
|
51260
|
-
addCredentialDesc: "Store SSH keys or passwords",
|
|
51261
51219
|
recentActivity: "Recent Activity",
|
|
51262
51220
|
serversAndHosts: "Servers & Hosts",
|
|
51263
51221
|
noHostsFound: 'No hosts found matching "{{search}}"',
|
|
51264
51222
|
links: "Links",
|
|
51265
51223
|
navigate: "Navigate",
|
|
51266
51224
|
select: "Select",
|
|
51267
|
-
toggleWith: "Toggle with",
|
|
51268
51225
|
pluginActions: "More actions",
|
|
51269
51226
|
noTargetTab: "No terminal tab is open",
|
|
51270
51227
|
documentation: "Documentation"
|
|
@@ -51299,7 +51256,6 @@ var en_default = {
|
|
|
51299
51256
|
unsplit: "Unsplit",
|
|
51300
51257
|
layouts: "Layouts",
|
|
51301
51258
|
applyLayout: "Change layout",
|
|
51302
|
-
newSplit: "New split",
|
|
51303
51259
|
maxPanes: "A split can hold up to {{count}} panes",
|
|
51304
51260
|
dropSplit: "Drop to split",
|
|
51305
51261
|
dropHere: "Drop to show here",
|
|
@@ -51326,16 +51282,10 @@ var en_default = {
|
|
|
51326
51282
|
connectedFor: "Connected for {{duration}}",
|
|
51327
51283
|
connected: "Connected",
|
|
51328
51284
|
disconnected: "Disconnected",
|
|
51329
|
-
closeTab: "Close tab",
|
|
51330
|
-
closeConnection: "Close connection",
|
|
51331
|
-
forgetTab: "Forget",
|
|
51332
|
-
removeBackground: "Remove",
|
|
51333
51285
|
reconnect: "Reconnect",
|
|
51334
|
-
reopenTab: "Reopen",
|
|
51335
51286
|
sectionOpen: "Open",
|
|
51336
51287
|
sectionBackground: "Background",
|
|
51337
51288
|
backgroundDesc: "Sessions persist for {{minutes}} minutes after disconnect and can be reconnected.",
|
|
51338
|
-
persisted: "Persisted in background",
|
|
51339
51289
|
expiresIn: "Expires in {{duration}}",
|
|
51340
51290
|
search: "Search connections...",
|
|
51341
51291
|
noSearchResults: "No connections match your search",
|
|
@@ -51375,7 +51325,7 @@ var en_default = {
|
|
|
51375
51325
|
empty: "No cards. Use Add below to place cards."
|
|
51376
51326
|
},
|
|
51377
51327
|
auth: {
|
|
51378
|
-
tagline: "Self-hosted, plugin-based server management",
|
|
51328
|
+
tagline: "Self-hosted, plugin-based server management.",
|
|
51379
51329
|
loginTitle: "Welcome back",
|
|
51380
51330
|
registerTitle: "Create Account",
|
|
51381
51331
|
forgotPassword: "Forgot Password?",
|
|
@@ -51397,36 +51347,22 @@ var en_default = {
|
|
|
51397
51347
|
sshKeyPasswordDescription: "If your SSH key is encrypted, enter the passphrase here.",
|
|
51398
51348
|
passphraseRequired: "Passphrase Required",
|
|
51399
51349
|
passphraseRequiredDescription: "The SSH key is encrypted. Please enter the passphrase to unlock it.",
|
|
51400
|
-
back: "Back",
|
|
51401
|
-
firstUser: "First User",
|
|
51402
|
-
firstUserMessage: "You are the first user and will be made an admin. You can view admin settings in the sidebar user dropdown. If you think this is a mistake, check the docker logs, or create a GitHub issue.",
|
|
51403
51350
|
external: "External",
|
|
51404
51351
|
loginWithExternal: "Login with External Provider",
|
|
51405
51352
|
loginWithExternalDesc: "Login using your configured external identity provider",
|
|
51406
|
-
externalNotSupportedInElectron: "External sign-in is not supported in the desktop app yet. Please use the web version.",
|
|
51407
51353
|
loginWithProvider: "Login with {{name}}",
|
|
51408
|
-
orContinueWith: "or continue with",
|
|
51409
51354
|
resetPasswordButton: "Reset Password",
|
|
51410
51355
|
sendResetCode: "Send Reset Code",
|
|
51411
51356
|
resetCodeDesc: "Enter your username to receive a password reset code. The code will be logged in the docker container logs.",
|
|
51412
51357
|
resetCode: "Reset Code",
|
|
51413
51358
|
verifyCodeButton: "Verify Code",
|
|
51414
|
-
enterResetCode: "Enter the 6-digit code from the docker container logs for user:",
|
|
51415
51359
|
newPassword: "New Password",
|
|
51416
51360
|
confirmNewPassword: "Confirm Password",
|
|
51417
|
-
enterNewPassword: "Enter your new password for user:",
|
|
51418
51361
|
signUp: "Sign Up",
|
|
51419
|
-
desktopApp: "Desktop App",
|
|
51420
|
-
loggingInToDesktopApp: "Logging in to the desktop app",
|
|
51421
51362
|
loadingServer: "Loading server...",
|
|
51422
|
-
dataLossWarning: "Resetting your password this way will delete all your saved SSH hosts, credentials, and other encrypted data. This action cannot be undone. Only use this if you have forgotten your password and are not logged in.",
|
|
51423
|
-
authenticationDisabled: "Authentication Disabled",
|
|
51424
|
-
authenticationDisabledDesc: "All authentication methods are currently disabled. Please contact your administrator.",
|
|
51425
|
-
passwordLoginDisabledDesc: "Password login is disabled. Use a passkey or an external authentication provider.",
|
|
51426
|
-
attemptsRemaining: "{{count}} attempts remaining",
|
|
51427
|
-
confirmResetDataWipe: "This account has not logged in since the encryption upgrade, so its stored data cannot be recovered without the old password. Resetting will permanently delete its hosts, credentials and snippets. Continue?",
|
|
51428
51363
|
password: "Password",
|
|
51429
51364
|
secondFactorUnavailable: "Your account uses a second factor that is not available right now. Contact an admin to reset it.",
|
|
51365
|
+
externalLoginRequired: "This account signs in through single sign-on. Use that button to sign in.",
|
|
51430
51366
|
secondFactorNoUI: "This second factor cannot be shown on this screen. Contact an admin.",
|
|
51431
51367
|
serverAuthentication: "Server sign-in",
|
|
51432
51368
|
minChars: "min. {{min}} characters",
|
|
@@ -51456,6 +51392,8 @@ var en_default = {
|
|
|
51456
51392
|
databaseConnection: "Could not connect to the database",
|
|
51457
51393
|
embeddedServerFailed: "Termix's local server could not start",
|
|
51458
51394
|
unknownError: "Unknown error",
|
|
51395
|
+
syncedHostMissing: "The synced host does not exist on the linked server",
|
|
51396
|
+
linkedServerUnreachable: "The linked server is not reachable",
|
|
51459
51397
|
loginFailed: "Login failed",
|
|
51460
51398
|
failedPasswordReset: "Failed to initiate password reset",
|
|
51461
51399
|
failedVerifyCode: "Failed to verify reset code",
|
|
@@ -51469,12 +51407,7 @@ var en_default = {
|
|
|
51469
51407
|
requiredField: "This field is required",
|
|
51470
51408
|
minLength: "Minimum length is {{min}}",
|
|
51471
51409
|
passwordMismatch: "Passwords do not match",
|
|
51472
|
-
passwordLoginDisabled: "Username/password login is currently disabled",
|
|
51473
51410
|
sessionExpired: "Session expired - please log in again",
|
|
51474
|
-
totpRateLimited: "Rate limited: Too many TOTP verification attempts. Please try again later.",
|
|
51475
|
-
totpRateLimitedWithTime: "Rate limited: Too many TOTP verification attempts. Please wait {{time}} seconds before trying again.",
|
|
51476
|
-
resetCodeRateLimited: "Rate limited: Too many verification attempts. Please try again later.",
|
|
51477
|
-
resetCodeRateLimitedWithTime: "Rate limited: Too many verification attempts. Please wait {{time}} seconds before trying again.",
|
|
51478
51411
|
authTokenSaveFailed: "Failed to save authentication token",
|
|
51479
51412
|
authTokenMissing: "The server did not return a new authentication token. Please sign in again.",
|
|
51480
51413
|
failedToLoadServer: "Failed to load server",
|
|
@@ -51494,7 +51427,6 @@ var en_default = {
|
|
|
51494
51427
|
registrationSuccess: "Registration successful"
|
|
51495
51428
|
},
|
|
51496
51429
|
placeholders: {
|
|
51497
|
-
language: "Language",
|
|
51498
51430
|
keyPassword: "key password",
|
|
51499
51431
|
pastePrivateKey: "Paste your private key here...",
|
|
51500
51432
|
enterPassword: "Enter your password",
|
|
@@ -51507,7 +51439,6 @@ var en_default = {
|
|
|
51507
51439
|
},
|
|
51508
51440
|
dashboard: {
|
|
51509
51441
|
title: "Dashboard",
|
|
51510
|
-
loading: "Loading dashboard...",
|
|
51511
51442
|
github: "GitHub",
|
|
51512
51443
|
reportBug: "Report a bug",
|
|
51513
51444
|
discord: "Discord",
|
|
@@ -51515,7 +51446,6 @@ var en_default = {
|
|
|
51515
51446
|
donate: "Donate",
|
|
51516
51447
|
serverOverview: "Server Overview",
|
|
51517
51448
|
version: "Version",
|
|
51518
|
-
upToDate: "Up to Date",
|
|
51519
51449
|
updateAvailable: "Update Available",
|
|
51520
51450
|
beta: "Beta",
|
|
51521
51451
|
uptime: "Uptime",
|
|
@@ -51526,7 +51456,6 @@ var en_default = {
|
|
|
51526
51456
|
totalCredentials: "Total Credentials",
|
|
51527
51457
|
recentActivity: "Recent Activity",
|
|
51528
51458
|
reset: "Reset",
|
|
51529
|
-
loadingRecentActivity: "Loading recent activity...",
|
|
51530
51459
|
noRecentActivity: "No recent activity",
|
|
51531
51460
|
quickActions: "Quick Actions",
|
|
51532
51461
|
addHost: "Add Host",
|
|
@@ -51534,48 +51463,21 @@ var en_default = {
|
|
|
51534
51463
|
adminSettings: "Admin Settings",
|
|
51535
51464
|
userProfile: "User Profile",
|
|
51536
51465
|
serverStats: "Server Stats",
|
|
51537
|
-
loadingServerStats: "Loading server stats...",
|
|
51538
|
-
noServerData: "No server data available",
|
|
51539
51466
|
customizeLayout: "Customize Dashboard",
|
|
51540
|
-
|
|
51541
|
-
enableDisableCards: "Enable/Disable Cards",
|
|
51542
|
-
resetLayout: "Reset to Default",
|
|
51543
|
-
serverOverviewCard: "Server Overview",
|
|
51544
|
-
recentActivityCard: "Recent Activity",
|
|
51545
|
-
quickActionsCard: "Quick Actions",
|
|
51546
|
-
serverStatsCard: "Server Stats",
|
|
51547
|
-
panelMain: "Main",
|
|
51548
|
-
panelSide: "Side",
|
|
51549
|
-
justNow: "just now",
|
|
51550
|
-
activityFileManager: "File manager"
|
|
51551
|
-
},
|
|
51552
|
-
donation: {
|
|
51553
|
-
title: "Enjoying Termix?",
|
|
51554
|
-
body: "Termix is free and open source, built and maintained by a two-person team in our spare time. If it's replaced a commercial tool you'd otherwise be paying for, a donation helps cover hosting costs and keeps development going. As of now, donations are crypto only.",
|
|
51555
|
-
milestones: "Donations also help fund the time to research and learn what's needed to build features like SAML and Kubernetes support. See the progress on the donate page.",
|
|
51556
|
-
cta: "Donate",
|
|
51557
|
-
dismiss: "Maybe later"
|
|
51467
|
+
justNow: "just now"
|
|
51558
51468
|
},
|
|
51559
51469
|
dashboardTab: {
|
|
51560
51470
|
stable: "STABLE",
|
|
51561
|
-
hostsOnline: "Hosts Online",
|
|
51562
51471
|
registerNewServer: "Register a new server",
|
|
51563
51472
|
storeSshKeysOrPasswords: "Store SSH keys or passwords",
|
|
51564
51473
|
manageUsersAndRoles: "Manage users and roles",
|
|
51565
51474
|
manageYourAccount: "Manage your account",
|
|
51566
51475
|
hostStatus: "Host Status",
|
|
51567
51476
|
noHostsConfigured: "No hosts configured",
|
|
51568
|
-
online: "ONLINE",
|
|
51569
|
-
offline: "OFFLINE",
|
|
51570
51477
|
checking: "CHECKING",
|
|
51571
|
-
onlineLower: "Online",
|
|
51572
|
-
add: "Add:",
|
|
51573
51478
|
commandPalette: "Command Palette",
|
|
51574
51479
|
done: "Done",
|
|
51575
|
-
editModeInstructions: "Drag cards to reorder. Drag the column divider to resize columns. Drag the bottom edge of a card to change its height. Use the trash button to remove a card.",
|
|
51576
|
-
empty: "Empty",
|
|
51577
51480
|
clear: "Clear",
|
|
51578
|
-
viewServerDetails: "View server details",
|
|
51579
51481
|
dragToResizeColumns: "Drag to resize columns",
|
|
51580
51482
|
hostsAvailable: "Hosts Available",
|
|
51581
51483
|
removeSection: "Remove section",
|
|
@@ -51727,7 +51629,6 @@ var en_default = {
|
|
|
51727
51629
|
noCustomRoles: "No custom roles defined",
|
|
51728
51630
|
removeRoleFailed: "Failed to remove role",
|
|
51729
51631
|
assignRoleFailed: "Failed to assign role",
|
|
51730
|
-
deleteRoleFailed: "Failed to delete role",
|
|
51731
51632
|
userAdminAccess: "Administrator",
|
|
51732
51633
|
userAdminAccessDesc: "Full access to all admin settings",
|
|
51733
51634
|
userRoles: "Roles",
|
|
@@ -51750,7 +51651,6 @@ var en_default = {
|
|
|
51750
51651
|
createUserPassword: "Password",
|
|
51751
51652
|
createUserPasswordHint: "Minimum 6 characters.",
|
|
51752
51653
|
createUserEnterUsername: "Enter username",
|
|
51753
|
-
createUserEnterPassword: "Enter password",
|
|
51754
51654
|
createUserSubmit: "Create User",
|
|
51755
51655
|
editUserTitle: "Manage User: {{username}}",
|
|
51756
51656
|
editUserDesc: "Edit roles, admin status, sessions, and account settings.",
|
|
@@ -51781,7 +51681,6 @@ var en_default = {
|
|
|
51781
51681
|
unlinkAccountInProgress: "Unlinking...",
|
|
51782
51682
|
unlinkAccountSuccess: "External sign-in unlinked",
|
|
51783
51683
|
unlinkAccountFailed: "Failed to unlink external sign-in",
|
|
51784
|
-
saving: "Saving...",
|
|
51785
51684
|
updateRegistrationFailed: "Failed to update registration setting",
|
|
51786
51685
|
updatePasswordLoginFailed: "Failed to update password login setting",
|
|
51787
51686
|
updateSecondFactorAfterExternalLoginFailed: "Failed to update second factor setting",
|
|
@@ -51863,7 +51762,6 @@ var en_default = {
|
|
|
51863
51762
|
importFailed: "Import failed: {{error}}",
|
|
51864
51763
|
importError: "Database import failed",
|
|
51865
51764
|
sectionHostDefaults: "Host Defaults",
|
|
51866
|
-
minutes: "minutes",
|
|
51867
51765
|
rolePermissions: {
|
|
51868
51766
|
count: "{{count}} permissions",
|
|
51869
51767
|
editAction: "Edit permissions",
|
|
@@ -51872,7 +51770,7 @@ var en_default = {
|
|
|
51872
51770
|
saveError: "Failed to save role permissions",
|
|
51873
51771
|
save: "Save",
|
|
51874
51772
|
saving: "Saving...",
|
|
51875
|
-
pluginDisabled: "
|
|
51773
|
+
pluginDisabled: "Plugin disabled",
|
|
51876
51774
|
groups: {
|
|
51877
51775
|
hosts: "Hosts",
|
|
51878
51776
|
credentials: "Credentials",
|
|
@@ -51915,7 +51813,6 @@ var en_default = {
|
|
|
51915
51813
|
hostLabel: "Host",
|
|
51916
51814
|
hostPlaceholder: "192.168.1.1 or example.com",
|
|
51917
51815
|
portLabel: "Port",
|
|
51918
|
-
portPlaceholder: "22",
|
|
51919
51816
|
usernameLabel: "Username",
|
|
51920
51817
|
usernamePlaceholder: "username",
|
|
51921
51818
|
authLabel: "Auth",
|
|
@@ -51933,7 +51830,6 @@ var en_default = {
|
|
|
51933
51830
|
noTarget: "Nothing installed can connect to this host type"
|
|
51934
51831
|
},
|
|
51935
51832
|
keybindings: {
|
|
51936
|
-
title: "Keyboard Shortcuts",
|
|
51937
51833
|
description: "Bind keys to actions in the terminal and the app, or change the built-in shortcuts.",
|
|
51938
51834
|
defaultsHeading: "Built-in Shortcuts",
|
|
51939
51835
|
fixedHeading: "App Shortcuts",
|
|
@@ -51959,7 +51855,6 @@ var en_default = {
|
|
|
51959
51855
|
customize: "Customize",
|
|
51960
51856
|
resetToDefault: "Reset to default",
|
|
51961
51857
|
resetAllToDefaults: "Reset all to defaults",
|
|
51962
|
-
close: "Close",
|
|
51963
51858
|
cancel: "Cancel",
|
|
51964
51859
|
saveBinding: "Save Shortcut",
|
|
51965
51860
|
saveError: "Failed to save keyboard shortcuts",
|
|
@@ -52030,7 +51925,6 @@ var en_default = {
|
|
|
52030
51925
|
cliLearnMore: "Learn More",
|
|
52031
51926
|
deleteAccount: "Delete Account",
|
|
52032
51927
|
deleteAccountDescription: "Permanently delete your account",
|
|
52033
|
-
changeServerDescription: "Switch to a different Termix backend server",
|
|
52034
51928
|
deleteButton: "Delete",
|
|
52035
51929
|
deleteAccountPermanent: "This action is permanent and cannot be undone.",
|
|
52036
51930
|
deleteAccountWarning: "All sessions, hosts, credentials, and settings will be permanently deleted.",
|
|
@@ -52044,8 +51938,6 @@ var en_default = {
|
|
|
52044
51938
|
keyboardShortcuts: "Keyboard Shortcuts",
|
|
52045
51939
|
keyboardShortcutsDescription: "Customize terminal copy, paste, and command shortcuts",
|
|
52046
51940
|
manageShortcuts: "Manage",
|
|
52047
|
-
historyTracking: "History Tracking",
|
|
52048
|
-
historyTrackingDesc: "Track terminal commands",
|
|
52049
51941
|
commandPalette: "Command Palette",
|
|
52050
51942
|
commandPaletteDesc: "Enable keyboard shortcut",
|
|
52051
51943
|
reopenTabsOnLogin: "Reopen Tabs on Login",
|
|
@@ -52058,28 +51950,16 @@ var en_default = {
|
|
|
52058
51950
|
sidebarSettingsMoved: "Host sidebar display settings have moved to the Customize sidebar panel, opened from the Hosts toolbar.",
|
|
52059
51951
|
showHostTags: "Show Host Tags",
|
|
52060
51952
|
showHostTagsDesc: "Display tags in host list",
|
|
52061
|
-
hostTrayOnClick: "Click to Expand Host Actions",
|
|
52062
|
-
hostTrayOnClickDesc: "Always show connection buttons; click to expand management options instead of hover",
|
|
52063
|
-
compactHostView: "Compact Host View",
|
|
52064
|
-
compactHostViewDesc: "Collapse each host to a single line showing only its name and address",
|
|
52065
51953
|
statusColors: "Real Status Colors",
|
|
52066
51954
|
statusColorsDesc: "Use green/red for online/offline status instead of the accent color",
|
|
52067
51955
|
pinAppRail: "Pin App Rail",
|
|
52068
51956
|
pinAppRailDesc: "Keep the left sidebar app rail always expanded instead of expanding on hover",
|
|
52069
|
-
openFullscreenSettings: "Open settings full screen",
|
|
52070
|
-
exitFullscreenSettings: "Exit full-screen settings",
|
|
52071
51957
|
expandAppRailOnHover: "Expand App Rail on Hover",
|
|
52072
51958
|
expandAppRailOnHoverDesc: "Allow the left sidebar app rail to expand when the pointer moves over it",
|
|
52073
51959
|
showPinAppRailButton: "Show Pin App Rail Button",
|
|
52074
51960
|
showPinAppRailButtonDesc: "Show a button in the app rail to pin it open. Off by default.",
|
|
52075
51961
|
settingsNavigation: "Navigation",
|
|
52076
51962
|
navigationTabsDesc: "Choose which tabs appear in the app rail",
|
|
52077
|
-
showSnippetCommands: "Show Commands",
|
|
52078
|
-
showSnippetCommandsDesc: "Show each snippet's command under its name. Turn off for a compact list.",
|
|
52079
|
-
foldersCollapsed: "Folders Collapsed",
|
|
52080
|
-
foldersCollapsedDesc: "Collapse folders by default",
|
|
52081
|
-
confirmExecution: "Confirm Execution",
|
|
52082
|
-
confirmExecutionDesc: "Confirm before running snippets",
|
|
52083
51963
|
settingsUpdates: "Updates",
|
|
52084
51964
|
disableUpdateChecks: "Disable Update Checks",
|
|
52085
51965
|
disableUpdateChecksDesc: "Stop checking for updates",
|
|
@@ -52169,7 +52049,6 @@ var en_default = {
|
|
|
52169
52049
|
}
|
|
52170
52050
|
}
|
|
52171
52051
|
},
|
|
52172
|
-
terminalToolbar: {},
|
|
52173
52052
|
plugins: {
|
|
52174
52053
|
capabilities: {
|
|
52175
52054
|
"credentials:read": {
|
|
@@ -52281,8 +52160,8 @@ var en_default = {
|
|
|
52281
52160
|
consequence: "Server settings, not your hosts or credentials."
|
|
52282
52161
|
},
|
|
52283
52162
|
"plugins:read": {
|
|
52284
|
-
title: "See installed
|
|
52285
|
-
consequence: "It can see which
|
|
52163
|
+
title: "See installed plugins",
|
|
52164
|
+
consequence: "It can see which plugins are installed and running."
|
|
52286
52165
|
},
|
|
52287
52166
|
"ui:surface": {
|
|
52288
52167
|
title: "Add its own screens",
|
|
@@ -52291,9 +52170,9 @@ var en_default = {
|
|
|
52291
52170
|
},
|
|
52292
52171
|
runtime: {
|
|
52293
52172
|
needsPlugin: "{{name}} is not available",
|
|
52294
|
-
needsUnknownPlugin: "This
|
|
52173
|
+
needsUnknownPlugin: "This plugin is not available",
|
|
52295
52174
|
disabledHint: "It is turned off on this server.",
|
|
52296
|
-
missingHint: "The
|
|
52175
|
+
missingHint: "The plugin it came from has been removed.",
|
|
52297
52176
|
failed: "{{name}} could not start",
|
|
52298
52177
|
failedHint: "An admin can check the server logs for details.",
|
|
52299
52178
|
loading: "Loading {{name}}",
|
|
@@ -52473,6 +52352,8 @@ var en_default = {
|
|
|
52473
52352
|
noneInstalled: "No plugins installed yet. Browse to add some.",
|
|
52474
52353
|
nothingHere: "Nothing here.",
|
|
52475
52354
|
nothingHereHint: "Try another category or search.",
|
|
52355
|
+
communitySoon: "Community plugins are coming in a later update. Plugin authors can already submit theirs to the community registry.",
|
|
52356
|
+
communitySubmit: "How to submit",
|
|
52476
52357
|
upToDate: "Everything is up to date.",
|
|
52477
52358
|
lastChecked: "Last checked {{time}}",
|
|
52478
52359
|
updatesReady_one: "{{count}} update ready.",
|
|
@@ -52665,7 +52546,7 @@ var en_default = {
|
|
|
52665
52546
|
sshCredentials: "Credentials",
|
|
52666
52547
|
sshFolders: "Folders",
|
|
52667
52548
|
userPreferences: "Preferences",
|
|
52668
|
-
pluginUserSettings: "
|
|
52549
|
+
pluginUserSettings: "Plugin settings",
|
|
52669
52550
|
sharedHosts: "Hosts shared with you",
|
|
52670
52551
|
sharedCredentials: "Credentials shared with you",
|
|
52671
52552
|
vaultProfiles: "Vault profiles",
|
|
@@ -52764,7 +52645,7 @@ var en_default = {
|
|
|
52764
52645
|
confirmNoChanges: "No existing host changes. New hosts will start with these defaults.",
|
|
52765
52646
|
menuMyDefaults: "My host defaults",
|
|
52766
52647
|
folderDefaultsAction: "Folder defaults",
|
|
52767
|
-
adminSectionDescription: "Set the defaults every host on this server follows, for every setting a host has, including each
|
|
52648
|
+
adminSectionDescription: "Set the defaults every host on this server follows, for every setting a host has, including each plugin's. Users and folders can set their own on top, and any host can still use its own value.",
|
|
52768
52649
|
editServerDefaults: "Edit server defaults",
|
|
52769
52650
|
resetMenu: "Reset",
|
|
52770
52651
|
resetAll: "Everything to defaults",
|
|
@@ -52794,7 +52675,7 @@ var en_default = {
|
|
|
52794
52675
|
needsAttention_one: "One thing needs attention.",
|
|
52795
52676
|
needsAttention_other: "{{count}} things need attention.",
|
|
52796
52677
|
bandHost: "Host",
|
|
52797
|
-
bandFeatures: "Protocols and
|
|
52678
|
+
bandFeatures: "Protocols and plugins",
|
|
52798
52679
|
bandCredential: "Credential",
|
|
52799
52680
|
sshConnection: "SSH connection",
|
|
52800
52681
|
errorAddressRequired: "An address is required.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
["!max-h-[60px]","!mt-0","!opacity-100","!running","**:data-[slot=kbd]:isolate","**:data-[slot=kbd]:relative","**:data-[slot=kbd]:rounded-none","**:data-[slot=kbd]:z-50","*:[a]:hover:text-foreground","*:[a]:underline","*:[a]:underline-offset-3","*:[img:first-child]:rounded-none","*:[img:last-child]:rounded-none","*:[span]:last:flex","*:[span]:last:gap-2","*:[span]:last:items-center","*:data-[slot=alert-description]:text-destructive/90","*:data-[slot=select-value]:flex","*:data-[slot=select-value]:gap-2","*:data-[slot=select-value]:items-center","*:data-[slot=select-value]:line-clamp-1","-bottom-1.5","-left-1.5","-left-px","-mt-0.5","-mt-1","-mt-[3.5px]","-mx-1","-mx-3","-my-1","-right-1.5","-right-2","-right-2.5","-right-px","-top-1.5","-top-[3px]","-translate-x-1/2","-translate-x-px","-translate-y-1/2","2xl:flex","2xl:grid-cols-4","3","@container","@container/card-header","@md:grid-cols-2","[&::-webkit-inner-spin-button]:appearance-none","[&::-webkit-outer-spin-button]:appearance-none","[&::-webkit-scrollbar]:hidden","[&>*:last-child]:border-b-0","[&>*]:h-full","[&>*]:shrink-0","[&>button]:hidden","[&>span:last-child]:truncate","[&>svg]:pointer-events-none","[&>svg]:shrink-0","[&>svg]:size-3","[&>svg]:size-4","[&>svg]:text-current","[&>svg]:text-sidebar-accent-foreground","[&>svg]:translate-y-0.5","[&_[cmdk-group-heading]]:font-medium","[&_[cmdk-group-heading]]:px-2","[&_[cmdk-group-heading]]:py-1.5","[&_[cmdk-group-heading]]:text-muted-foreground","[&_[cmdk-group-heading]]:text-xs","[&_[cmdk-list-sizer]]:flex","[&_[cmdk-list-sizer]]:flex-col","[&_p]:leading-relaxed","[&_svg:not([class*='size-'])]:size-3","[&_svg:not([class*='size-'])]:size-3.5","[&_svg:not([class*='size-'])]:size-4","[&_svg:not([class*='text-'])]:text-muted-foreground","[&_svg]:pointer-events-none","[&_svg]:shrink-0","[&_svg]:size-2.5","[&_svg]:size-3","[&_svg]:size-3.5","[&_svg]:size-4","[.border-b]:pb-4","[.gap-4>&]:border-0","[.gap-4>&]:py-0","[@media(hover:none)]:flex","[[data-side=left][data-collapsible=offcanvas]_&]:-right-2","[[data-side=left][data-state=collapsed]_&]:cursor-e-resize","[[data-side=right][data-collapsible=offcanvas]_&]:-left-2","[[data-side=right][data-state=collapsed]_&]:cursor-w-resize","[a&]:hover:bg-accent","[a&]:hover:bg-destructive/90","[a&]:hover:bg-primary/90","[a&]:hover:bg-secondary/90","[a&]:hover:text-accent-foreground","[a]:hover:bg-primary/80","[animation-duration:900ms]","[appearance:textfield]","[backend:stderr]","[clip-path:inset(0px_-4px_-4px_-4px)]","[contain:content]","[op:http_server_port_conflict]","[scrollbar-width:none]","absolute","accent-[var(--accent-brand)]","active:bg-muted","active:bg-muted/60","active:bg-sidebar-accent","active:cursor-grabbing","active:not-aria-[haspopup]:translate-y-px","active:text-sidebar-accent-foreground","after:-inset-2","after:absolute","after:inset-y-0","after:start-1/2","after:w-[2px]","animate-pulse","animate-spin","appearance-none","aria-disabled:opacity-50","aria-disabled:pointer-events-none","aria-expanded:bg-muted","aria-expanded:bg-secondary","aria-expanded:opacity-100","aria-expanded:text-foreground","aria-expanded:text-secondary-foreground","aria-invalid:border-destructive","aria-invalid:ring-1","aria-invalid:ring-destructive/20","aspect-square","aspect-video","auto-cols-fr","auto-rows-fr","auto-rows-min","before:-top-0.5","before:-top-px","before:absolute","before:bg-accent-brand","before:h-0.5","before:inset-x-0","before:inset-x-1","before:z-20","bg-accent-brand","bg-accent-brand/10","bg-accent-brand/15","bg-accent-brand/20","bg-accent-brand/25","bg-accent-brand/40","bg-accent-brand/5","bg-accent-brand/60","bg-accent-brand/70","bg-accent-brand/[0.07]","bg-accent/30","bg-accent/60","bg-background","bg-background/50","bg-background/60","bg-background/70","bg-background/85","bg-background/90","bg-black","bg-black/10","bg-blue-500/20","bg-border","bg-border/60","bg-canvas","bg-card","bg-clip-padding","bg-destructive","bg-destructive/10","bg-destructive/15","bg-destructive/5","bg-destructive/70","bg-emerald-500","bg-emerald-500/10","bg-foreground","bg-green-500","bg-green-500/10","bg-green-500/70","bg-input","bg-muted","bg-muted-foreground","bg-muted-foreground/15","bg-muted-foreground/20","bg-muted-foreground/25","bg-muted-foreground/30","bg-muted-foreground/40","bg-muted-foreground/50","bg-muted/10","bg-muted/15","bg-muted/20","bg-muted/30","bg-muted/40","bg-muted/50","bg-muted/60","bg-muted/70","bg-muted/[0.08]","bg-overlay","bg-popover","bg-primary","bg-red-400","bg-red-500","bg-red-500/10","bg-red-500/40","bg-secondary","bg-sidebar","bg-sidebar-border","bg-surface","bg-surface-dim/40","bg-surface-dim/60","bg-surface/40","bg-transparent","bg-warning","bg-warning/10","bg-warning/20","bg-warning/40","bg-warning/5","bg-warning/70","block","blur","border","border-0","border-2","border-accent-brand","border-accent-brand/20","border-accent-brand/30","border-accent-brand/40","border-accent-brand/50","border-accent-brand/60","border-accent-brand/70","border-b","border-b-2","border-b-accent-brand","border-border","border-border/30","border-border/40","border-border/50","border-border/60","border-current","border-dashed","border-destructive","border-destructive/20","border-destructive/30","border-destructive/40","border-destructive/50","border-emerald-500/40","border-foreground","border-foreground/10","border-green-500/30","border-green-500/40","border-input","border-l","border-l-2","border-l-transparent","border-muted-foreground/30","border-primary","border-r","border-red-500/40","border-sidebar-border","border-t","border-t-0","border-t-border/40","border-t-muted-foreground/70","border-t-transparent","border-transparent","border-warning/30","border-warning/40","border-x","border-y","bottom-0","bottom-4","break-all","break-words","capitalize","catppuccin","col-span-2","col-start-2","collapse","columns-2","columns-3","com","container","contents","cursor-col-resize","cursor-default","cursor-grab","cursor-not-allowed","cursor-ns-resize","cursor-pointer","cursor-row-resize","dark","dark:aria-invalid:border-destructive/50","dark:aria-invalid:ring-destructive/40","dark:bg-destructive/20","dark:bg-destructive/60","dark:bg-input/30","dark:bg-transparent","dark:border-accent-brand/40","dark:border-input","dark:data-[state=active]:bg-input/30","dark:data-[state=active]:border-input","dark:data-[state=active]:text-foreground","dark:data-[state=checked]:bg-primary","dark:data-[state=checked]:bg-primary-foreground","dark:data-[state=unchecked]:bg-foreground","dark:data-[state=unchecked]:bg-input/80","dark:data-[variant=destructive]:focus:bg-destructive/20","dark:disabled:bg-input/80","dark:focus-visible:ring-destructive/40","dark:hover:bg-accent-brand/10","dark:hover:bg-destructive/10","dark:hover:bg-destructive/30","dark:hover:bg-input/50","dark:hover:bg-muted/50","dark:text-muted-foreground","data-[disabled=true]:opacity-50","data-[disabled=true]:pointer-events-none","data-[disabled]:opacity-50","data-[disabled]:pointer-events-none","data-[orientation=horizontal]:h-1.5","data-[orientation=horizontal]:h-full","data-[orientation=horizontal]:h-px","data-[orientation=horizontal]:w-full","data-[orientation=vertical]:flex-col","data-[orientation=vertical]:h-full","data-[orientation=vertical]:min-h-44","data-[orientation=vertical]:self-center","data-[orientation=vertical]:self-stretch","data-[orientation=vertical]:w-1.5","data-[orientation=vertical]:w-auto","data-[orientation=vertical]:w-full","data-[orientation=vertical]:w-px","data-[placeholder]:text-muted-foreground","data-[selected=true]:bg-muted","data-[selected=true]:text-accent-foreground","data-[side=bottom]:border-t","data-[side=bottom]:bottom-0","data-[side=bottom]:data-closed:slide-out-to-bottom-10","data-[side=bottom]:data-open:slide-in-from-bottom-10","data-[side=bottom]:h-auto","data-[side=bottom]:inset-x-0","data-[side=bottom]:slide-in-from-top-2","data-[side=bottom]:translate-y-1","data-[side=left]:-translate-x-1","data-[side=left]:border-r","data-[side=left]:data-closed:slide-out-to-left-10","data-[side=left]:data-open:slide-in-from-left-10","data-[side=left]:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]","data-[side=left]:h-full","data-[side=left]:inset-y-0","data-[side=left]:left-0","data-[side=left]:slide-in-from-right-2","data-[side=left]:sm:max-w-sm","data-[side=left]:w-3/4","data-[side=right]:border-l","data-[side=right]:data-closed:slide-out-to-right-10","data-[side=right]:data-open:slide-in-from-right-10","data-[side=right]:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]","data-[side=right]:h-full","data-[side=right]:inset-y-0","data-[side=right]:right-0","data-[side=right]:slide-in-from-left-2","data-[side=right]:sm:max-w-sm","data-[side=right]:translate-x-1","data-[side=right]:w-3/4","data-[side=top]:-translate-y-1","data-[side=top]:border-b","data-[side=top]:data-closed:slide-out-to-top-10","data-[side=top]:data-open:slide-in-from-top-10","data-[side=top]:h-auto","data-[side=top]:inset-x-0","data-[side=top]:slide-in-from-bottom-2","data-[side=top]:top-0","data-[size=default]:h-9","data-[size=md]:text-xs","data-[size=sm]:gap-2","data-[size=sm]:h-8","data-[size=sm]:has-data-[slot=card-footer]:pb-0","data-[size=sm]:py-3","data-[size=sm]:text-xs","data-[state=active]:animate-in","data-[state=active]:bg-background","data-[state=active]:fade-in-0","data-[state=active]:shadow-sm","data-[state=checked]:bg-primary","data-[state=checked]:border-primary","data-[state=checked]:text-primary-foreground","data-[state=checked]:translate-x-[calc(100%-2px)]","data-[state=closed]:animate-out","data-[state=closed]:fade-out-0","data-[state=closed]:overflow-hidden","data-[state=closed]:zoom-out-95","data-[state=delayed-open]:animate-in","data-[state=delayed-open]:fade-in-0","data-[state=delayed-open]:zoom-in-95","data-[state=inactive]:animate-out","data-[state=inactive]:fade-out-0","data-[state=open]:animate-in","data-[state=open]:fade-in-0","data-[state=open]:zoom-in-95","data-[state=unchecked]:bg-input","data-[state=unchecked]:translate-x-0","data-[variant=destructive]:*:[svg]:text-destructive","data-[variant=destructive]:focus:bg-destructive/10","data-[variant=destructive]:focus:text-destructive","data-[variant=destructive]:text-destructive","data-active:bg-sidebar-accent","data-active:font-medium","data-active:text-sidebar-accent-foreground","data-closed:animate-out","data-closed:fade-out-0","data-closed:zoom-out-95","data-disabled:opacity-50","data-disabled:pointer-events-none","data-inset:pl-7","data-open:animate-in","data-open:bg-accent","data-open:fade-in-0","data-open:hover:bg-sidebar-accent","data-open:hover:text-sidebar-accent-foreground","data-open:text-accent-foreground","data-open:zoom-in-95","delay-75","disabled:bg-input/50","disabled:cursor-not-allowed","disabled:opacity-30","disabled:opacity-40","disabled:opacity-50","disabled:opacity-60","disabled:pointer-events-none","divide-border","divide-x","divide-y","dracula","drop-shadow","duration-100","duration-150","duration-200","duration-500","duration-[450ms]","ease-in-out","ease-linear","ease-out","enabled:hover:text-accent-brand","fade-in","file:bg-transparent","file:border-0","file:font-medium","file:h-6","file:inline-flex","file:text-foreground","file:text-xs","fill-foreground","filter","fixed","flex","flex-1","flex-col","flex-col-reverse","flex-row","flex-wrap","focus-visible:border-destructive/40","focus-visible:border-ring","focus-visible:outline-1","focus-visible:outline-hidden","focus-visible:outline-none","focus-visible:outline-ring","focus-visible:relative","focus-visible:ring-0","focus-visible:ring-1","focus-visible:ring-2","focus-visible:ring-4","focus-visible:ring-[#f59145]/40","focus-visible:ring-[3px]","focus-visible:ring-destructive/20","focus-visible:ring-inset","focus-visible:ring-ring","focus-visible:ring-ring/50","focus-visible:z-10","focus-within:border-ring","focus-within:opacity-100","focus-within:ring-1","focus-within:ring-ring","focus-within:ring-ring/50","focus:**:text-accent-foreground","focus:bg-accent","focus:ring-1","focus:ring-ring","focus:text-accent-brand","focus:text-accent-foreground","focus:text-destructive","font-bold","font-heading","font-medium","font-mono","font-normal","font-semibold","fs-lg","fs-md","fs-sm","fs-xl","fs-xs","gap-0","gap-0.5","gap-1","gap-1.5","gap-2","gap-2.5","gap-3","gap-3.5","gap-4","gap-5","gap-6","gap-[1.75px]","gap-[10.5px]","gap-[2px]","gap-[3.5px]","gap-[3px]","gap-px","gap-x-2","gap-x-3","gap-x-4","gap-x-6","gap-y-0","gap-y-0.5","gap-y-1","gap-y-1.5","gap-y-2","gap-y-3","grid","grid-cols-1","grid-cols-2","grid-cols-3","grid-cols-4","grid-cols-6","grid-cols-8","grid-cols-[0_1fr]","grid-cols-[1fr_5rem]","grid-flow-col","group","group-[.toast]:!border-accent-brand/30","group-[.toast]:!border-destructive/30","group-[.toast]:!text-accent-brand","group-[.toast]:!text-destructive","group-[.toast]:bg-accent-brand","group-[.toast]:bg-muted","group-[.toast]:font-semibold","group-[.toast]:text-muted-foreground","group-[.toast]:text-white","group-[.toaster]:bg-card","group-[.toaster]:border-border","group-[.toaster]:font-mono","group-[.toaster]:rounded-none!","group-[.toaster]:shadow-lg","group-[.toaster]:text-card-foreground","group-data-[collapsible=icon]:-mt-8","group-data-[collapsible=icon]:hidden","group-data-[collapsible=icon]:opacity-0","group-data-[collapsible=icon]:overflow-hidden","group-data-[collapsible=icon]:p-0!","group-data-[collapsible=icon]:p-2!","group-data-[collapsible=icon]:size-8!","group-data-[collapsible=icon]:w-(--sidebar-width-icon)","group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]","group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]","group-data-[collapsible=offcanvas]:after:left-full","group-data-[collapsible=offcanvas]:translate-x-0","group-data-[collapsible=offcanvas]:w-0","group-data-[disabled=true]:opacity-50","group-data-[disabled=true]:pointer-events-none","group-data-[selected=true]:opacity-100","group-data-[side=left]:-right-4","group-data-[side=left]:border-r","group-data-[side=right]:border-l","group-data-[side=right]:left-0","group-data-[side=right]:rotate-180","group-data-[size=sm]/card:[.border-b]:pb-3","group-data-[size=sm]/card:p-3","group-data-[size=sm]/card:px-3","group-data-[size=sm]/card:text-sm","group-data-[variant=floating]:ring-1","group-data-[variant=floating]:ring-sidebar-border","group-data-[variant=floating]:rounded-none","group-data-[variant=floating]:shadow-sm","group-focus-within/folder:flex","group-focus-within/menu-item:opacity-100","group-focus-within/row:flex","group-focus/dropdown-menu-item:text-accent-foreground","group-has-data-[sidebar=menu-action]/menu-item:pr-8","group-hover/btn:bg-accent-brand/20","group-hover/btn:border-accent-brand/40","group-hover/folder:flex","group-hover/folder:opacity-100","group-hover/folder:text-muted-foreground/70","group-hover/menu-item:opacity-100","group-hover/open:text-accent-brand","group-hover/resize:bg-accent-brand/60","group-hover/row:flex","group-hover/row:text-muted-foreground/60","group-hover/tab:opacity-100","group-hover:bg-accent-brand/60","group-hover:hidden","group-hover:max-h-[60px]","group-hover:mt-0","group-hover:opacity-100","group-hover:text-muted-foreground/70","group/btn","group/card","group/dropdown-menu-item","group/folder","group/menu-item","group/open","group/resize","group/row","group/tab","grow","gruvbox","h-0","h-0.5","h-1","h-1.5","h-10","h-11","h-12","h-12.5","h-14","h-16","h-2.5","h-20","h-24","h-28","h-3","h-3.5","h-4","h-5","h-6","h-7","h-8","h-9","h-[1.15rem]","h-[136px]","h-[14px]","h-[2px]","h-[3px]","h-[46%]","h-[80vh]","h-[calc(100%-1px)]","h-[var(--radix-select-trigger-height)]","h-full","h-px","h-screen","h-svh","has-[>img:first-child]:pt-0","has-[>svg]:gap-x-3","has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr]","has-[[data-state=open]]:opacity-100","has-data-[icon=inline-end]:pr-1.5","has-data-[icon=inline-end]:pr-2","has-data-[icon=inline-start]:pl-1.5","has-data-[icon=inline-start]:pl-2","has-data-[slot=card-action]:grid-cols-[1fr_auto]","has-data-[slot=card-description]:grid-rows-[auto_auto]","has-data-[slot=card-footer]:pb-0","has-data-[slot=kbd]:pr-1.5","has-data-[variant=inset]:bg-sidebar","hidden","host-status-stripe","hover:after:bg-sidebar-border","hover:bg-accent","hover:bg-accent-brand","hover:bg-accent-brand/10","hover:bg-accent-brand/15","hover:bg-accent-brand/20","hover:bg-accent-brand/40","hover:bg-accent-brand/5","hover:bg-accent-brand/90","hover:bg-background/80","hover:bg-destructive/10","hover:bg-destructive/20","hover:bg-destructive/90","hover:bg-foreground/[0.03]","hover:bg-muted","hover:bg-muted-foreground/10","hover:bg-muted/20","hover:bg-muted/30","hover:bg-muted/40","hover:bg-muted/50","hover:bg-muted/60","hover:bg-secondary/80","hover:bg-sidebar-accent","hover:bg-surface","hover:border-accent-brand","hover:border-accent-brand/30","hover:border-accent-brand/40","hover:border-accent-brand/60","hover:border-destructive/40","hover:border-foreground/40","hover:border-muted-foreground","hover:border-ring/60","hover:group-data-[collapsible=offcanvas]:bg-sidebar","hover:opacity-100","hover:ring-4","hover:ring-[#f59145]/40","hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]","hover:text-accent-brand","hover:text-accent-brand/70","hover:text-accent-brand/80","hover:text-accent-foreground","hover:text-destructive","hover:text-destructive/80","hover:text-foreground","hover:text-muted-foreground","hover:text-primary","hover:text-sidebar-accent-foreground","hover:underline","in-data-[side=left]:cursor-w-resize","in-data-[side=right]:cursor-e-resize","inline","inline-block","inline-flex","inset-0","inset-x-0","inset-x-3","inset-y-0","invisible","isolate","italic","items-baseline","items-center","items-end","items-start","items-stretch","justify-between","justify-center","justify-end","justify-items-start","justify-self-end","justify-start","last:border-0","last:border-b-0","leading-[1.4]","leading-[1.7]","leading-[14px]","leading-none","leading-relaxed","leading-snug","leading-tight","left-0","left-1/2","left-2","left-2.5","left-[50%]","lg:block","lg:col-span-2","lg:flex","lg:grid-cols-1","lg:grid-cols-2","lg:grid-cols-3","lg:grid-cols-4","lg:grid-cols-5","lg:hidden","lg:inline","line-clamp-2","line-clamp-3","line-clamp-4","line-through","list-disc","list-inside","lowercase","ltr:-translate-x-1/2","lucide","m-2.5","m-auto","max-h-(--radix-dropdown-menu-content-available-height)","max-h-(--radix-popover-content-available-height)","max-h-(--radix-select-content-available-height)","max-h-0","max-h-24","max-h-40","max-h-56","max-h-64","max-h-96","max-h-[130px]","max-h-[300px]","max-h-[60px]","max-h-[60vh]","max-h-[80dvh]","max-w-(--skeleton-width)","max-w-0","max-w-2xl","max-w-32","max-w-3xl","max-w-40","max-w-48","max-w-5xl","max-w-72","max-w-96","max-w-[120px]","max-w-[160px]","max-w-[180px]","max-w-[200px]","max-w-[260px]","max-w-[380px]","max-w-[50%]","max-w-[560px]","max-w-[5rem]","max-w-[60%]","max-w-[calc(100%-2rem)]","max-w-full","max-w-lg","max-w-md","max-w-sm","max-w-xl","max-w-xs","mb-0.5","mb-1","mb-1.5","mb-2","mb-4","md:-mx-4","md:after:hidden","md:block","md:col-span-1","md:flex","md:flex-row","md:grid-cols-1","md:grid-cols-2","md:grid-cols-3","md:grid-cols-4","md:hidden","md:max-h-none","md:opacity-0","md:overflow-visible","md:overflow-y-auto","md:peer-data-[variant=inset]:m-2","md:peer-data-[variant=inset]:ml-0","md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2","md:peer-data-[variant=inset]:rounded-none","md:peer-data-[variant=inset]:shadow-sm","md:px-3.5","md:px-4","md:size-4","md:static","md:text-2xl","md:text-xs","md:w-44","md:w-48","md:w-56","md:w-60","md:w-72","min-[280px]:inline","min-h-0","min-h-11","min-h-16","min-h-24","min-h-48","min-h-8","min-h-9","min-h-[19px]","min-h-[220px]","min-h-[80px]","min-h-full","min-h-svh","min-w-(--radix-popover-trigger-width)","min-w-0","min-w-16","min-w-3","min-w-32","min-w-4","min-w-40","min-w-44","min-w-5","min-w-52","min-w-[14px]","min-w-[150px]","min-w-[160px]","min-w-[170px]","min-w-[180px]","min-w-[200px]","min-w-[8rem]","min-w-[96px]","min-w-[var(--radix-select-trigger-width)]","min-w-max","ml-0.5","ml-1","ml-1.5","ml-2","ml-3","ml-3.5","ml-4","ml-8","ml-[27px]","ml-auto","motion-context-enter","motion-fade-enter","motion-interactive","motion-meter","motion-panel-enter","motion-transfer-phase","motion-workspace-enter","motion-workspace-layout","mr-1","mr-1.5","mr-2","mt-0.5","mt-1","mt-1.5","mt-2","mt-2.5","mt-3","mt-4","mt-[1.75px]","mt-auto","mt-px","mx-0.5","mx-2","mx-3.5","mx-4","mx-auto","my-0.5","my-1","my-3","my-auto","nord","normal-case","not-data-[variant=destructive]:focus:**:text-accent-foreground","object-contain","one-dark","opacity-0","opacity-100","opacity-40","opacity-50","opacity-60","opacity-70","opacity-80","origin-(--radix-dropdown-menu-content-transform-origin)","origin-(--radix-popover-content-transform-origin)","origin-(--radix-select-content-transform-origin)","origin-(--radix-tooltip-content-transform-origin)","origin-center","outline","outline-hidden","outline-none","overflow-auto","overflow-hidden","overflow-x-auto","overflow-x-hidden","overflow-y-auto","overflow-y-hidden","overline","p-0","p-0.5","p-1","p-1.5","p-10","p-2","p-2.5","p-3","p-4","p-5","p-6","p-8","p-[3px]","p-px","paused","pb-0","pb-1","pb-1.5","pb-2","pb-3","pb-6","peer","peer-data-[size=default]/menu-button:top-1.5","peer-data-[size=lg]/menu-button:top-2.5","peer-data-[size=sm]/menu-button:top-1","peer-data-active/menu-button:text-sidebar-accent-foreground","peer-disabled:cursor-not-allowed","peer-disabled:opacity-50","peer-hover/menu-button:text-sidebar-accent-foreground","peer/menu-button","pl-1","pl-2","pl-2.5","pl-4","pl-5","pl-5.5","pl-6","pl-7","pl-8","pl-[7px]","pl-[8.75px]","pl-px","placeholder:text-muted-foreground","placeholder:text-muted-foreground/50","pointer-coarse:flex","pointer-coarse:opacity-100","pointer-events-none","pr-0.5","pr-1","pr-1.5","pr-12","pr-2","pr-2.5","pr-7","pr-8","pr-9","pr-[5.25px]","pr-[7px]","pt-0.5","pt-1","pt-1.5","pt-2","pt-2.5","pt-3","pt-4","pt-[15vh]","pt-[3.5px]","pt-[3px]","pt-[5.25px]","px-0","px-0.5","px-1","px-1.5","px-2","px-2.5","px-3","px-3.5","px-4","px-5","px-6","px-[3px]","py-0","py-0.5","py-1","py-1.5","py-10","py-12","py-2","py-2.5","py-3","py-4","py-6","py-8","py-[1px]","py-[2px]","py-[5px]","py-[7px]","py-px","relative","resize","resize-none","right-0","right-1","right-1.5","right-2","right-2.5","right-3","ring","ring-0","ring-1","ring-2","ring-accent-brand","ring-accent-brand/50","ring-border","ring-foreground/10","ring-inset","ring-offset-1","ring-offset-background","ring-sidebar-ring","ring-white/60","rotate-180","rotate-45","rotate-90","rounded","rounded-[inherit]","rounded-full","rounded-none","rounded-sm","row-span-2","row-start-1","rtl:-translate-x-1/2","running","safe-bottom","scale-110","scroll-my-1","scrollbar-none","select-none","self-end","self-start","self-stretch","settings-search-hit","shadow","shadow-2xl","shadow-[0_0_0_1px_hsl(var(--sidebar-border))]","shadow-lg","shadow-md","shadow-none","shadow-sm","shadow-xl","shadow-xs","shrink-0","size-1.5","size-10","size-12","size-2","size-2.5","size-3","size-3.5","size-4","size-5","size-6","size-6.5","size-7","size-8","size-9","size-[10.5px]","size-[17.5px]","size-[19px]","size-[22.75px]","size-full","size-px","sm:border-b-0","sm:border-r","sm:col-span-2","sm:flex","sm:flex-row","sm:grid-cols-12","sm:grid-cols-2","sm:grid-cols-3","sm:grid-cols-4","sm:items-center","sm:justify-end","sm:max-w-4xl","sm:max-w-lg","sm:max-w-sm","sm:mr-auto","sm:py-14","sm:text-left","solarized","space-y-0.5","space-y-1.5","space-y-2","sr-only","static","sticky","stroke-accent-brand","stroke-border","stroke-muted","supports-backdrop-filter:backdrop-blur-xs","tab-1","tab-2","table","tabular-nums","text-2xl","text-[10px]","text-[11px]","text-[12px]","text-[13px]","text-[9px]","text-accent-brand","text-accent-brand/50","text-accent-brand/80","text-accent-foreground","text-background","text-base","text-blue-400","text-blue-500","text-card-foreground","text-center","text-current","text-destructive","text-destructive/80","text-emerald-500","text-foreground","text-foreground-secondary","text-foreground/70","text-foreground/80","text-green-500","text-left","text-lg","text-muted-foreground","text-muted-foreground/0","text-muted-foreground/20","text-muted-foreground/30","text-muted-foreground/35","text-muted-foreground/40","text-muted-foreground/45","text-muted-foreground/50","text-muted-foreground/60","text-muted-foreground/70","text-muted-foreground/80","text-popover-foreground","text-primary","text-primary-foreground","text-red-500","text-right","text-secondary-foreground","text-sidebar-foreground","text-sidebar-foreground/70","text-sm","text-warning","text-white","text-xl","text-xs","text-xs/relaxed","thin-scrollbar","toast","toaster","tokyo-night","top-0","top-1","top-1.5","top-1/2","top-2","top-20","top-3","top-3.5","top-[50%]","touch-none","tracking-[0.35em]","tracking-[0.3em]","tracking-normal","tracking-tight","tracking-wide","tracking-wider","tracking-widest","transfer-progress-fill","transfer-progress-indeterminate","transfer-progress-stalled","transfer-progress-track","transform","transition","transition-[background-color,border-color,box-shadow,opacity]","transition-[color,background-color,border-color,opacity,box-shadow,transform]","transition-[color,box-shadow]","transition-[height,border-color]","transition-[height]","transition-[left,right,width]","transition-[left,top,width,height]","transition-[margin,opacity]","transition-[max-height,opacity,margin]","transition-[opacity,max-width]","transition-[opacity,width]","transition-[padding]","transition-[stroke-dasharray]","transition-[width,height,padding]","transition-[width]","transition-all","transition-colors","transition-none","transition-opacity","transition-shadow","transition-transform","translate-x-0.5","translate-x-4","translate-x-[-50%]","translate-x-px","translate-y-[-1px]","translate-y-[-50%]","translate-y-[calc(-50%_-_2px)]","truncate","underline","underline-offset-2","underline-offset-4","uppercase","visible","w-(--radix-dropdown-menu-trigger-width)","w-(--sidebar-width)","w-0","w-0.5","w-1","w-1.5","w-1/2","w-1/4","w-10","w-11","w-12","w-12.5","w-2","w-2.5","w-2/3","w-20","w-28","w-3","w-3/4","w-4","w-40","w-48","w-5","w-5/6","w-52","w-56","w-6","w-60","w-64","w-72","w-8","w-9","w-[120px]","w-[240px]","w-[2px]","w-[3px]","w-[46%]","w-[min(85vw,360px)]","w-[var(--radix-popover-trigger-width)]","w-auto","w-fit","w-full","w-max","w-px","w-screen","whitespace-normal","whitespace-nowrap","whitespace-pre","whitespace-pre-line","whitespace-pre-wrap","xl:block","xl:flex","xl:grid-cols-1","xl:grid-cols-2","xl:grid-cols-3","xl:grid-cols-4","z-0","z-10","z-20","z-30","z-40","z-50","z-500","z-[10000]","z-[100]","z-[200]","z-[60]","z-[9998]","z-[99999]"]
|
|
1
|
+
["!max-h-[60px]","!mt-0","!opacity-100","!running","**:data-[slot=kbd]:isolate","**:data-[slot=kbd]:relative","**:data-[slot=kbd]:rounded-none","**:data-[slot=kbd]:z-50","*:[a]:hover:text-foreground","*:[a]:underline","*:[a]:underline-offset-3","*:[img:first-child]:rounded-none","*:[img:last-child]:rounded-none","*:[span]:last:flex","*:[span]:last:gap-2","*:[span]:last:items-center","*:data-[slot=alert-description]:text-destructive/90","*:data-[slot=select-value]:flex","*:data-[slot=select-value]:gap-2","*:data-[slot=select-value]:items-center","*:data-[slot=select-value]:line-clamp-1","-bottom-1.5","-left-1.5","-left-px","-mt-0.5","-mt-1","-mt-[3.5px]","-mx-1","-mx-3","-my-1","-right-1.5","-right-2","-right-2.5","-right-px","-top-1.5","-top-[3px]","-translate-x-1/2","-translate-x-px","-translate-y-1/2","2xl:flex","2xl:grid-cols-4","3","@container","@container/card-header","@md:grid-cols-2","[&::-webkit-inner-spin-button]:appearance-none","[&::-webkit-outer-spin-button]:appearance-none","[&::-webkit-scrollbar]:hidden","[&>*:last-child]:border-b-0","[&>*]:h-full","[&>*]:shrink-0","[&>button]:hidden","[&>span:last-child]:truncate","[&>svg]:pointer-events-none","[&>svg]:shrink-0","[&>svg]:size-3","[&>svg]:size-4","[&>svg]:text-current","[&>svg]:text-sidebar-accent-foreground","[&>svg]:translate-y-0.5","[&_[cmdk-group-heading]]:font-medium","[&_[cmdk-group-heading]]:px-2","[&_[cmdk-group-heading]]:py-1.5","[&_[cmdk-group-heading]]:text-muted-foreground","[&_[cmdk-group-heading]]:text-xs","[&_[cmdk-list-sizer]]:flex","[&_[cmdk-list-sizer]]:flex-col","[&_p]:leading-relaxed","[&_svg:not([class*='size-'])]:size-3","[&_svg:not([class*='size-'])]:size-3.5","[&_svg:not([class*='size-'])]:size-4","[&_svg:not([class*='text-'])]:text-muted-foreground","[&_svg]:pointer-events-none","[&_svg]:shrink-0","[&_svg]:size-2.5","[&_svg]:size-3","[&_svg]:size-3.5","[&_svg]:size-4","[.border-b]:pb-4","[.gap-4>&]:border-0","[.gap-4>&]:py-0","[@media(hover:none)]:flex","[[data-side=left][data-collapsible=offcanvas]_&]:-right-2","[[data-side=left][data-state=collapsed]_&]:cursor-e-resize","[[data-side=right][data-collapsible=offcanvas]_&]:-left-2","[[data-side=right][data-state=collapsed]_&]:cursor-w-resize","[a&]:hover:bg-accent","[a&]:hover:bg-destructive/90","[a&]:hover:bg-primary/90","[a&]:hover:bg-secondary/90","[a&]:hover:text-accent-foreground","[a]:hover:bg-primary/80","[animation-duration:900ms]","[appearance:textfield]","[backend:stderr]","[clip-path:inset(0px_-4px_-4px_-4px)]","[contain:content]","[op:http_server_port_conflict]","[scrollbar-width:none]","absolute","accent-[var(--accent-brand)]","active:bg-muted","active:bg-muted/60","active:bg-sidebar-accent","active:cursor-grabbing","active:not-aria-[haspopup]:translate-y-px","active:text-sidebar-accent-foreground","after:-inset-2","after:absolute","after:inset-y-0","after:start-1/2","after:w-[2px]","animate-pulse","animate-spin","appearance-none","aria-disabled:opacity-50","aria-disabled:pointer-events-none","aria-expanded:bg-muted","aria-expanded:bg-secondary","aria-expanded:opacity-100","aria-expanded:text-foreground","aria-expanded:text-secondary-foreground","aria-invalid:border-destructive","aria-invalid:ring-1","aria-invalid:ring-destructive/20","aspect-square","aspect-video","auto-cols-fr","auto-rows-fr","auto-rows-min","before:-top-0.5","before:-top-px","before:absolute","before:bg-accent-brand","before:h-0.5","before:inset-x-0","before:inset-x-1","before:z-20","bg-accent-brand","bg-accent-brand/10","bg-accent-brand/15","bg-accent-brand/20","bg-accent-brand/25","bg-accent-brand/40","bg-accent-brand/5","bg-accent-brand/60","bg-accent-brand/70","bg-accent-brand/[0.07]","bg-accent/30","bg-accent/60","bg-background","bg-background/50","bg-background/60","bg-background/70","bg-background/85","bg-background/90","bg-black","bg-black/10","bg-blue-500/20","bg-border","bg-border/60","bg-canvas","bg-card","bg-clip-padding","bg-destructive","bg-destructive/10","bg-destructive/15","bg-destructive/5","bg-destructive/70","bg-emerald-500","bg-emerald-500/10","bg-foreground","bg-green-500","bg-green-500/10","bg-green-500/70","bg-input","bg-muted","bg-muted-foreground","bg-muted-foreground/15","bg-muted-foreground/20","bg-muted-foreground/25","bg-muted-foreground/30","bg-muted-foreground/40","bg-muted-foreground/50","bg-muted/10","bg-muted/15","bg-muted/20","bg-muted/30","bg-muted/40","bg-muted/50","bg-muted/60","bg-muted/70","bg-muted/[0.08]","bg-overlay","bg-popover","bg-primary","bg-red-400","bg-red-500","bg-red-500/10","bg-red-500/40","bg-secondary","bg-sidebar","bg-sidebar-border","bg-surface","bg-surface-dim/40","bg-surface-dim/60","bg-surface/40","bg-transparent","bg-warning","bg-warning/10","bg-warning/20","bg-warning/40","bg-warning/5","bg-warning/70","block","blur","border","border-0","border-2","border-accent-brand","border-accent-brand/20","border-accent-brand/30","border-accent-brand/40","border-accent-brand/50","border-accent-brand/60","border-accent-brand/70","border-b","border-b-2","border-b-accent-brand","border-border","border-border/30","border-border/40","border-border/50","border-border/60","border-current","border-dashed","border-destructive","border-destructive/20","border-destructive/30","border-destructive/40","border-destructive/50","border-emerald-500/40","border-foreground","border-foreground/10","border-green-500/30","border-green-500/40","border-input","border-l","border-l-2","border-l-transparent","border-muted-foreground/30","border-primary","border-r","border-red-500/40","border-sidebar-border","border-t","border-t-0","border-t-border/40","border-t-muted-foreground/70","border-t-transparent","border-transparent","border-warning/30","border-warning/40","border-x","border-y","bottom-0","bottom-4","break-all","break-words","capitalize","catppuccin","col-span-2","col-start-2","collapse","columns-2","columns-3","com","container","contents","cursor-col-resize","cursor-default","cursor-grab","cursor-not-allowed","cursor-ns-resize","cursor-pointer","cursor-row-resize","dark","dark:aria-invalid:border-destructive/50","dark:aria-invalid:ring-destructive/40","dark:bg-destructive/20","dark:bg-destructive/60","dark:bg-input/30","dark:bg-transparent","dark:border-accent-brand/40","dark:border-input","dark:data-[state=active]:bg-input/30","dark:data-[state=active]:border-input","dark:data-[state=active]:text-foreground","dark:data-[state=checked]:bg-primary","dark:data-[state=checked]:bg-primary-foreground","dark:data-[state=unchecked]:bg-foreground","dark:data-[state=unchecked]:bg-input/80","dark:data-[variant=destructive]:focus:bg-destructive/20","dark:disabled:bg-input/80","dark:focus-visible:ring-destructive/40","dark:hover:bg-accent-brand/10","dark:hover:bg-destructive/10","dark:hover:bg-destructive/30","dark:hover:bg-input/50","dark:hover:bg-muted/50","dark:text-muted-foreground","data-[disabled=true]:opacity-50","data-[disabled=true]:pointer-events-none","data-[disabled]:opacity-50","data-[disabled]:pointer-events-none","data-[orientation=horizontal]:h-1.5","data-[orientation=horizontal]:h-full","data-[orientation=horizontal]:h-px","data-[orientation=horizontal]:w-full","data-[orientation=vertical]:flex-col","data-[orientation=vertical]:h-full","data-[orientation=vertical]:min-h-44","data-[orientation=vertical]:self-center","data-[orientation=vertical]:self-stretch","data-[orientation=vertical]:w-1.5","data-[orientation=vertical]:w-auto","data-[orientation=vertical]:w-full","data-[orientation=vertical]:w-px","data-[placeholder]:text-muted-foreground","data-[selected=true]:bg-muted","data-[selected=true]:text-accent-foreground","data-[side=bottom]:border-t","data-[side=bottom]:bottom-0","data-[side=bottom]:data-closed:slide-out-to-bottom-10","data-[side=bottom]:data-open:slide-in-from-bottom-10","data-[side=bottom]:h-auto","data-[side=bottom]:inset-x-0","data-[side=bottom]:slide-in-from-top-2","data-[side=bottom]:translate-y-1","data-[side=left]:-translate-x-1","data-[side=left]:border-r","data-[side=left]:data-closed:slide-out-to-left-10","data-[side=left]:data-open:slide-in-from-left-10","data-[side=left]:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]","data-[side=left]:h-full","data-[side=left]:inset-y-0","data-[side=left]:left-0","data-[side=left]:slide-in-from-right-2","data-[side=left]:sm:max-w-sm","data-[side=left]:w-3/4","data-[side=right]:border-l","data-[side=right]:data-closed:slide-out-to-right-10","data-[side=right]:data-open:slide-in-from-right-10","data-[side=right]:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]","data-[side=right]:h-full","data-[side=right]:inset-y-0","data-[side=right]:right-0","data-[side=right]:slide-in-from-left-2","data-[side=right]:sm:max-w-sm","data-[side=right]:translate-x-1","data-[side=right]:w-3/4","data-[side=top]:-translate-y-1","data-[side=top]:border-b","data-[side=top]:data-closed:slide-out-to-top-10","data-[side=top]:data-open:slide-in-from-top-10","data-[side=top]:h-auto","data-[side=top]:inset-x-0","data-[side=top]:slide-in-from-bottom-2","data-[side=top]:top-0","data-[size=default]:h-9","data-[size=md]:text-xs","data-[size=sm]:gap-2","data-[size=sm]:h-8","data-[size=sm]:has-data-[slot=card-footer]:pb-0","data-[size=sm]:py-3","data-[size=sm]:text-xs","data-[state=active]:animate-in","data-[state=active]:bg-background","data-[state=active]:fade-in-0","data-[state=active]:shadow-sm","data-[state=checked]:bg-primary","data-[state=checked]:border-primary","data-[state=checked]:text-primary-foreground","data-[state=checked]:translate-x-[calc(100%-2px)]","data-[state=closed]:animate-out","data-[state=closed]:fade-out-0","data-[state=closed]:overflow-hidden","data-[state=closed]:zoom-out-95","data-[state=delayed-open]:animate-in","data-[state=delayed-open]:fade-in-0","data-[state=delayed-open]:zoom-in-95","data-[state=inactive]:animate-out","data-[state=inactive]:fade-out-0","data-[state=open]:animate-in","data-[state=open]:fade-in-0","data-[state=open]:zoom-in-95","data-[state=unchecked]:bg-input","data-[state=unchecked]:translate-x-0","data-[variant=destructive]:*:[svg]:text-destructive","data-[variant=destructive]:focus:bg-destructive/10","data-[variant=destructive]:focus:text-destructive","data-[variant=destructive]:text-destructive","data-active:bg-sidebar-accent","data-active:font-medium","data-active:text-sidebar-accent-foreground","data-closed:animate-out","data-closed:fade-out-0","data-closed:zoom-out-95","data-disabled:opacity-50","data-disabled:pointer-events-none","data-inset:pl-7","data-open:animate-in","data-open:bg-accent","data-open:fade-in-0","data-open:hover:bg-sidebar-accent","data-open:hover:text-sidebar-accent-foreground","data-open:text-accent-foreground","data-open:zoom-in-95","delay-75","disabled:bg-input/50","disabled:cursor-not-allowed","disabled:opacity-30","disabled:opacity-40","disabled:opacity-50","disabled:opacity-60","disabled:pointer-events-none","divide-border","divide-x","divide-y","dracula","drop-shadow","duration-100","duration-150","duration-200","duration-500","duration-[450ms]","ease-in-out","ease-linear","ease-out","enabled:hover:text-accent-brand","fade-in","file:bg-transparent","file:border-0","file:font-medium","file:h-6","file:inline-flex","file:text-foreground","file:text-xs","fill-foreground","filter","fixed","flex","flex-1","flex-col","flex-col-reverse","flex-row","flex-wrap","focus-visible:border-destructive/40","focus-visible:border-ring","focus-visible:outline-1","focus-visible:outline-hidden","focus-visible:outline-none","focus-visible:outline-ring","focus-visible:relative","focus-visible:ring-0","focus-visible:ring-1","focus-visible:ring-2","focus-visible:ring-4","focus-visible:ring-[#f59145]/40","focus-visible:ring-[3px]","focus-visible:ring-destructive/20","focus-visible:ring-inset","focus-visible:ring-ring","focus-visible:ring-ring/50","focus-visible:z-10","focus-within:border-ring","focus-within:opacity-100","focus-within:ring-1","focus-within:ring-ring","focus-within:ring-ring/50","focus:**:text-accent-foreground","focus:bg-accent","focus:ring-1","focus:ring-ring","focus:text-accent-brand","focus:text-accent-foreground","focus:text-destructive","font-bold","font-heading","font-medium","font-mono","font-normal","font-semibold","fs-lg","fs-md","fs-sm","fs-xl","fs-xs","gap-0","gap-0.5","gap-1","gap-1.5","gap-2","gap-2.5","gap-3","gap-3.5","gap-4","gap-5","gap-6","gap-[1.75px]","gap-[10.5px]","gap-[2px]","gap-[3.5px]","gap-[3px]","gap-px","gap-x-2","gap-x-3","gap-x-4","gap-x-6","gap-y-0","gap-y-0.5","gap-y-1","gap-y-1.5","gap-y-2","gap-y-3","grid","grid-cols-1","grid-cols-2","grid-cols-3","grid-cols-4","grid-cols-6","grid-cols-8","grid-cols-[0_1fr]","grid-cols-[1fr_5rem]","grid-flow-col","group","group-[.toast]:!border-accent-brand/30","group-[.toast]:!border-destructive/30","group-[.toast]:!text-accent-brand","group-[.toast]:!text-destructive","group-[.toast]:bg-accent-brand","group-[.toast]:bg-muted","group-[.toast]:font-semibold","group-[.toast]:text-muted-foreground","group-[.toast]:text-white","group-[.toaster]:bg-card","group-[.toaster]:border-border","group-[.toaster]:font-mono","group-[.toaster]:rounded-none!","group-[.toaster]:shadow-lg","group-[.toaster]:text-card-foreground","group-data-[collapsible=icon]:-mt-8","group-data-[collapsible=icon]:hidden","group-data-[collapsible=icon]:opacity-0","group-data-[collapsible=icon]:overflow-hidden","group-data-[collapsible=icon]:p-0!","group-data-[collapsible=icon]:p-2!","group-data-[collapsible=icon]:size-8!","group-data-[collapsible=icon]:w-(--sidebar-width-icon)","group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]","group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]","group-data-[collapsible=offcanvas]:after:left-full","group-data-[collapsible=offcanvas]:translate-x-0","group-data-[collapsible=offcanvas]:w-0","group-data-[disabled=true]:opacity-50","group-data-[disabled=true]:pointer-events-none","group-data-[selected=true]:opacity-100","group-data-[side=left]:-right-4","group-data-[side=left]:border-r","group-data-[side=right]:border-l","group-data-[side=right]:left-0","group-data-[side=right]:rotate-180","group-data-[size=sm]/card:[.border-b]:pb-3","group-data-[size=sm]/card:p-3","group-data-[size=sm]/card:px-3","group-data-[size=sm]/card:text-sm","group-data-[variant=floating]:ring-1","group-data-[variant=floating]:ring-sidebar-border","group-data-[variant=floating]:rounded-none","group-data-[variant=floating]:shadow-sm","group-focus-within/folder:flex","group-focus-within/menu-item:opacity-100","group-focus-within/row:flex","group-focus/dropdown-menu-item:text-accent-foreground","group-has-data-[sidebar=menu-action]/menu-item:pr-8","group-hover/btn:bg-accent-brand/20","group-hover/btn:border-accent-brand/40","group-hover/folder:flex","group-hover/folder:opacity-100","group-hover/folder:text-muted-foreground/70","group-hover/menu-item:opacity-100","group-hover/open:text-accent-brand","group-hover/resize:bg-accent-brand/60","group-hover/row:flex","group-hover/row:text-muted-foreground/60","group-hover/tab:opacity-100","group-hover:bg-accent-brand/60","group-hover:hidden","group-hover:max-h-[60px]","group-hover:mt-0","group-hover:opacity-100","group-hover:text-muted-foreground/70","group/btn","group/card","group/dropdown-menu-item","group/folder","group/menu-item","group/open","group/resize","group/row","group/tab","grow","gruvbox","h-0","h-0.5","h-1","h-1.5","h-10","h-11","h-12","h-12.5","h-14","h-16","h-2.5","h-20","h-24","h-28","h-3","h-3.5","h-4","h-5","h-6","h-7","h-8","h-9","h-[1.15rem]","h-[136px]","h-[14px]","h-[2px]","h-[3px]","h-[46%]","h-[calc(100%-1px)]","h-[var(--radix-select-trigger-height)]","h-full","h-px","h-screen","h-svh","has-[>img:first-child]:pt-0","has-[>svg]:gap-x-3","has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr]","has-[[data-state=open]]:opacity-100","has-data-[icon=inline-end]:pr-1.5","has-data-[icon=inline-end]:pr-2","has-data-[icon=inline-start]:pl-1.5","has-data-[icon=inline-start]:pl-2","has-data-[slot=card-action]:grid-cols-[1fr_auto]","has-data-[slot=card-description]:grid-rows-[auto_auto]","has-data-[slot=card-footer]:pb-0","has-data-[slot=kbd]:pr-1.5","has-data-[variant=inset]:bg-sidebar","hidden","host-status-stripe","hover:after:bg-sidebar-border","hover:bg-accent","hover:bg-accent-brand","hover:bg-accent-brand/10","hover:bg-accent-brand/15","hover:bg-accent-brand/20","hover:bg-accent-brand/40","hover:bg-accent-brand/5","hover:bg-accent-brand/90","hover:bg-background/80","hover:bg-destructive/10","hover:bg-destructive/20","hover:bg-destructive/90","hover:bg-foreground/[0.03]","hover:bg-muted","hover:bg-muted-foreground/10","hover:bg-muted/20","hover:bg-muted/30","hover:bg-muted/40","hover:bg-muted/50","hover:bg-muted/60","hover:bg-secondary/80","hover:bg-sidebar-accent","hover:bg-surface","hover:border-accent-brand","hover:border-accent-brand/30","hover:border-accent-brand/40","hover:border-accent-brand/60","hover:border-destructive/40","hover:border-foreground/40","hover:border-muted-foreground","hover:border-ring/60","hover:group-data-[collapsible=offcanvas]:bg-sidebar","hover:opacity-100","hover:ring-4","hover:ring-[#f59145]/40","hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]","hover:text-accent-brand","hover:text-accent-brand/70","hover:text-accent-brand/80","hover:text-accent-foreground","hover:text-destructive","hover:text-destructive/80","hover:text-foreground","hover:text-muted-foreground","hover:text-primary","hover:text-sidebar-accent-foreground","hover:underline","in-data-[side=left]:cursor-w-resize","in-data-[side=right]:cursor-e-resize","inline","inline-block","inline-flex","inset-0","inset-x-0","inset-x-3","inset-y-0","invisible","isolate","italic","items-baseline","items-center","items-end","items-start","items-stretch","justify-between","justify-center","justify-end","justify-items-start","justify-self-end","justify-start","last:border-0","last:border-b-0","leading-[1.4]","leading-[1.7]","leading-[14px]","leading-none","leading-relaxed","leading-snug","leading-tight","left-0","left-1/2","left-2","left-2.5","left-[50%]","lg:block","lg:col-span-2","lg:flex","lg:grid-cols-1","lg:grid-cols-2","lg:grid-cols-3","lg:grid-cols-4","lg:grid-cols-5","lg:hidden","lg:inline","line-clamp-2","line-clamp-3","line-clamp-4","line-through","list-disc","list-inside","lowercase","ltr:-translate-x-1/2","lucide","m-2.5","m-auto","max-h-(--radix-dropdown-menu-content-available-height)","max-h-(--radix-popover-content-available-height)","max-h-(--radix-select-content-available-height)","max-h-0","max-h-24","max-h-40","max-h-56","max-h-64","max-h-96","max-h-[130px]","max-h-[300px]","max-h-[60px]","max-h-[60vh]","max-h-[80dvh]","max-w-(--skeleton-width)","max-w-0","max-w-2xl","max-w-32","max-w-3xl","max-w-40","max-w-48","max-w-5xl","max-w-72","max-w-96","max-w-[120px]","max-w-[160px]","max-w-[180px]","max-w-[200px]","max-w-[260px]","max-w-[380px]","max-w-[50%]","max-w-[560px]","max-w-[5rem]","max-w-[60%]","max-w-[calc(100%-2rem)]","max-w-full","max-w-lg","max-w-md","max-w-sm","max-w-xl","max-w-xs","mb-0.5","mb-1","mb-1.5","mb-2","mb-4","md:-mx-4","md:after:hidden","md:block","md:col-span-1","md:flex","md:flex-row","md:grid-cols-1","md:grid-cols-2","md:grid-cols-3","md:grid-cols-4","md:hidden","md:max-h-none","md:opacity-0","md:overflow-visible","md:overflow-y-auto","md:peer-data-[variant=inset]:m-2","md:peer-data-[variant=inset]:ml-0","md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2","md:peer-data-[variant=inset]:rounded-none","md:peer-data-[variant=inset]:shadow-sm","md:px-3.5","md:px-4","md:size-4","md:static","md:text-2xl","md:text-xs","md:w-44","md:w-48","md:w-56","md:w-60","md:w-72","min-[280px]:inline","min-h-0","min-h-11","min-h-16","min-h-24","min-h-48","min-h-8","min-h-9","min-h-[19px]","min-h-[220px]","min-h-[70vh]","min-h-[80px]","min-h-full","min-h-svh","min-w-(--radix-popover-trigger-width)","min-w-0","min-w-16","min-w-3","min-w-32","min-w-4","min-w-40","min-w-44","min-w-5","min-w-52","min-w-[14px]","min-w-[150px]","min-w-[160px]","min-w-[170px]","min-w-[180px]","min-w-[200px]","min-w-[8rem]","min-w-[96px]","min-w-[var(--radix-select-trigger-width)]","min-w-max","ml-0.5","ml-1","ml-1.5","ml-2","ml-3","ml-3.5","ml-4","ml-8","ml-[27px]","ml-auto","motion-context-enter","motion-fade-enter","motion-interactive","motion-meter","motion-panel-enter","motion-transfer-phase","motion-workspace-enter","motion-workspace-layout","mr-1","mr-1.5","mr-2","mt-0.5","mt-1","mt-1.5","mt-2","mt-2.5","mt-3","mt-4","mt-[1.75px]","mt-auto","mt-px","mx-0.5","mx-2","mx-3.5","mx-4","mx-auto","my-0.5","my-1","my-3","my-auto","nord","normal-case","not-data-[variant=destructive]:focus:**:text-accent-foreground","object-contain","one-dark","opacity-0","opacity-100","opacity-40","opacity-50","opacity-60","opacity-70","opacity-80","origin-(--radix-dropdown-menu-content-transform-origin)","origin-(--radix-popover-content-transform-origin)","origin-(--radix-select-content-transform-origin)","origin-(--radix-tooltip-content-transform-origin)","origin-center","outline","outline-hidden","outline-none","overflow-auto","overflow-hidden","overflow-x-auto","overflow-x-hidden","overflow-y-auto","overflow-y-hidden","overline","p-0","p-0.5","p-1","p-1.5","p-10","p-2","p-2.5","p-3","p-4","p-5","p-6","p-8","p-[3px]","p-px","paused","pb-0","pb-1","pb-1.5","pb-2","pb-3","pb-6","peer","peer-data-[size=default]/menu-button:top-1.5","peer-data-[size=lg]/menu-button:top-2.5","peer-data-[size=sm]/menu-button:top-1","peer-data-active/menu-button:text-sidebar-accent-foreground","peer-disabled:cursor-not-allowed","peer-disabled:opacity-50","peer-hover/menu-button:text-sidebar-accent-foreground","peer/menu-button","pl-1","pl-2","pl-2.5","pl-4","pl-5","pl-5.5","pl-6","pl-7","pl-8","pl-[7px]","pl-[8.75px]","pl-px","placeholder:text-muted-foreground","placeholder:text-muted-foreground/50","pointer-coarse:flex","pointer-coarse:opacity-100","pointer-events-none","pr-0.5","pr-1","pr-1.5","pr-12","pr-2","pr-2.5","pr-7","pr-8","pr-9","pr-[5.25px]","pr-[7px]","pt-0.5","pt-1","pt-1.5","pt-2","pt-2.5","pt-3","pt-4","pt-[15vh]","pt-[3.5px]","pt-[3px]","pt-[5.25px]","px-0","px-0.5","px-1","px-1.5","px-2","px-2.5","px-3","px-3.5","px-4","px-5","px-6","px-[3px]","py-0","py-0.5","py-1","py-1.5","py-10","py-12","py-2","py-2.5","py-3","py-4","py-6","py-8","py-[1px]","py-[2px]","py-[5px]","py-[7px]","py-px","relative","resize","resize-none","right-0","right-1","right-1.5","right-2","right-2.5","right-3","ring","ring-0","ring-1","ring-2","ring-accent-brand","ring-accent-brand/50","ring-border","ring-foreground/10","ring-inset","ring-offset-1","ring-offset-background","ring-sidebar-ring","ring-white/60","rotate-180","rotate-45","rotate-90","rounded","rounded-[inherit]","rounded-full","rounded-none","rounded-sm","row-span-2","row-start-1","rtl:-translate-x-1/2","running","safe-bottom","scale-110","scroll-my-1","scrollbar-none","select-none","self-end","self-start","self-stretch","settings-search-hit","shadow","shadow-2xl","shadow-[0_0_0_1px_hsl(var(--sidebar-border))]","shadow-lg","shadow-md","shadow-none","shadow-sm","shadow-xl","shadow-xs","shrink-0","size-1.5","size-10","size-12","size-2","size-2.5","size-3","size-3.5","size-4","size-5","size-6","size-6.5","size-7","size-8","size-9","size-[10.5px]","size-[17.5px]","size-[19px]","size-[22.75px]","size-full","size-px","sm:border-b-0","sm:border-r","sm:col-span-2","sm:flex","sm:flex-row","sm:grid-cols-12","sm:grid-cols-2","sm:grid-cols-3","sm:grid-cols-4","sm:items-center","sm:justify-end","sm:max-w-lg","sm:max-w-sm","sm:mr-auto","sm:py-14","sm:text-left","solarized","space-y-0.5","space-y-1.5","space-y-2","sr-only","static","sticky","stroke-accent-brand","stroke-border","stroke-muted","supports-backdrop-filter:backdrop-blur-xs","tab-1","tab-2","table","tabular-nums","text-2xl","text-[10px]","text-[11px]","text-[12px]","text-[13px]","text-[9px]","text-accent-brand","text-accent-brand/50","text-accent-brand/80","text-accent-foreground","text-background","text-base","text-blue-400","text-blue-500","text-card-foreground","text-center","text-current","text-destructive","text-destructive/80","text-emerald-500","text-foreground","text-foreground-secondary","text-foreground/70","text-foreground/80","text-green-500","text-left","text-lg","text-muted-foreground","text-muted-foreground/0","text-muted-foreground/20","text-muted-foreground/30","text-muted-foreground/35","text-muted-foreground/40","text-muted-foreground/45","text-muted-foreground/50","text-muted-foreground/60","text-muted-foreground/70","text-muted-foreground/80","text-popover-foreground","text-primary","text-primary-foreground","text-red-500","text-right","text-secondary-foreground","text-sidebar-foreground","text-sidebar-foreground/70","text-sm","text-warning","text-white","text-xl","text-xs","text-xs/relaxed","thin-scrollbar","toast","toaster","tokyo-night","top-0","top-1","top-1.5","top-1/2","top-2","top-20","top-3","top-3.5","top-[50%]","touch-none","tracking-[0.35em]","tracking-[0.3em]","tracking-normal","tracking-tight","tracking-wide","tracking-wider","tracking-widest","transfer-progress-fill","transfer-progress-indeterminate","transfer-progress-stalled","transfer-progress-track","transform","transition","transition-[background-color,border-color,box-shadow,opacity]","transition-[color,background-color,border-color,opacity,box-shadow,transform]","transition-[color,box-shadow]","transition-[height,border-color]","transition-[height]","transition-[left,right,width]","transition-[left,top,width,height]","transition-[margin,opacity]","transition-[max-height,opacity,margin]","transition-[opacity,max-width]","transition-[opacity,width]","transition-[padding]","transition-[stroke-dasharray]","transition-[width,height,padding]","transition-[width]","transition-all","transition-colors","transition-none","transition-opacity","transition-shadow","transition-transform","translate-x-0.5","translate-x-4","translate-x-[-50%]","translate-x-px","translate-y-[-1px]","translate-y-[-50%]","translate-y-[calc(-50%_-_2px)]","truncate","underline","underline-offset-2","underline-offset-4","uppercase","visible","w-(--radix-dropdown-menu-trigger-width)","w-(--sidebar-width)","w-0","w-0.5","w-1","w-1.5","w-1/2","w-1/4","w-10","w-11","w-12","w-12.5","w-2","w-2.5","w-2/3","w-20","w-28","w-3","w-3/4","w-4","w-40","w-48","w-5","w-5/6","w-52","w-56","w-6","w-60","w-64","w-72","w-8","w-9","w-[240px]","w-[2px]","w-[3px]","w-[46%]","w-[min(85vw,360px)]","w-[var(--radix-popover-trigger-width)]","w-auto","w-fit","w-full","w-max","w-px","w-screen","whitespace-normal","whitespace-nowrap","whitespace-pre","whitespace-pre-line","whitespace-pre-wrap","xl:block","xl:flex","xl:grid-cols-1","xl:grid-cols-2","xl:grid-cols-3","xl:grid-cols-4","z-0","z-10","z-20","z-30","z-40","z-50","z-500","z-[10000]","z-[100]","z-[200]","z-[60]","z-[9998]","z-[99999]"]
|
|
@@ -40,16 +40,16 @@ import {
|
|
|
40
40
|
setShellCallbacks,
|
|
41
41
|
setShellHosts,
|
|
42
42
|
setShellLayoutProvider
|
|
43
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-VETPF5WI.js";
|
|
44
44
|
import {
|
|
45
45
|
setPermissionsForTesting
|
|
46
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-KOOUKYW3.js";
|
|
47
47
|
import {
|
|
48
48
|
getTabType,
|
|
49
49
|
listTabTypes,
|
|
50
50
|
setFrontendState,
|
|
51
51
|
setPluginSummaries
|
|
52
|
-
} from "./chunk-
|
|
52
|
+
} from "./chunk-OEOKIKXC.js";
|
|
53
53
|
import "./chunk-YC2MAKSP.js";
|
|
54
54
|
|
|
55
55
|
// src/ui/plugin-host/testing-host.tsx
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Credential sidebar preferences model. Shared by the frontend sidebar and
|
|
3
3
|
* the backend preferences endpoint (no framework imports, mirrors
|
|
4
4
|
* ./host-sidebar-preferences.ts's dependency-free convention). Independent
|
|
5
|
-
* from HostSidebarPreferences by design
|
|
5
|
+
* from HostSidebarPreferences by design, a separate parallel system, not a
|
|
6
6
|
* shared blob, matching how credentialSortKey/credentialFilterState were
|
|
7
7
|
* already independently namespaced from hostSortKey/etc. before this port.
|
|
8
8
|
*
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Extract a stable, human-readable message from an unknown thrown value.
|
|
3
3
|
*
|
|
4
|
-
* A thrown value is not guaranteed to be an `Error
|
|
4
|
+
* A thrown value is not guaranteed to be an `Error`, libraries may throw
|
|
5
5
|
* strings or plain objects, which carry no useful `.message`. When that
|
|
6
6
|
* happens the caller gets `fallback` instead, so error paths never surface a
|
|
7
7
|
* raw `[object Object]` in logs or UI.
|
|
@@ -66,7 +66,6 @@ export interface UserInfo {
|
|
|
66
66
|
is_dual_auth?: boolean;
|
|
67
67
|
password_hash?: string;
|
|
68
68
|
data_unlocked?: boolean;
|
|
69
|
-
show_donation_modal?: boolean;
|
|
70
69
|
/** On a desktop linked to a server, the account it is signed in to there. */
|
|
71
70
|
linked?: LinkedAccountInfo | null;
|
|
72
71
|
}
|
|
@@ -121,7 +120,6 @@ export declare function logoutUser(): Promise<{
|
|
|
121
120
|
message: string;
|
|
122
121
|
}>;
|
|
123
122
|
export declare function getUserInfo(): Promise<UserInfo>;
|
|
124
|
-
export declare function dismissDonationModal(): Promise<void>;
|
|
125
123
|
export declare function getCurrentToken(): Promise<string | null>;
|
|
126
124
|
export declare function unlockUserData(password: string): Promise<{
|
|
127
125
|
success: boolean;
|
package/dist/host/ui.js
CHANGED
|
@@ -138,8 +138,8 @@ import {
|
|
|
138
138
|
useSurfaceKind,
|
|
139
139
|
useTheme,
|
|
140
140
|
verifySecondFactor
|
|
141
|
-
} from "./chunk-
|
|
142
|
-
import "./chunk-
|
|
141
|
+
} from "./chunk-VETPF5WI.js";
|
|
142
|
+
import "./chunk-KOOUKYW3.js";
|
|
143
143
|
import {
|
|
144
144
|
TabProvider,
|
|
145
145
|
buildOriginWsUrl,
|
|
@@ -178,7 +178,7 @@ import {
|
|
|
178
178
|
useTabs,
|
|
179
179
|
useTabsSafe,
|
|
180
180
|
verifyPasswordResetCode
|
|
181
|
-
} from "./chunk-
|
|
181
|
+
} from "./chunk-OEOKIKXC.js";
|
|
182
182
|
import "./chunk-YC2MAKSP.js";
|
|
183
183
|
|
|
184
184
|
// src/ui/components/alert.tsx
|
|
@@ -4428,6 +4428,13 @@ function syncPlugins(summaries) {
|
|
|
4428
4428
|
import.meta.hot?.on("termix:plugins-reloaded", () => {
|
|
4429
4429
|
if (started) void syncPlugins();
|
|
4430
4430
|
});
|
|
4431
|
+
function installLocaleResolver() {
|
|
4432
|
+
setPluginLocaleResolver((namespace, _language, file) => {
|
|
4433
|
+
const summary = getPluginRecord(namespace)?.summary;
|
|
4434
|
+
if (!summary) return Promise.resolve(null);
|
|
4435
|
+
return currentDeps().loadLocale(summary, file);
|
|
4436
|
+
});
|
|
4437
|
+
}
|
|
4431
4438
|
async function fetchPreLoginPlugins() {
|
|
4432
4439
|
const response = await fetch(getBackendUrl("/plugins/public-manifest"));
|
|
4433
4440
|
if (!response.ok) return [];
|
|
@@ -4443,11 +4450,7 @@ async function startPreLoginPlugins(options = {}) {
|
|
|
4443
4450
|
return;
|
|
4444
4451
|
}
|
|
4445
4452
|
if (list.length === 0 || started) return;
|
|
4446
|
-
|
|
4447
|
-
const summary = getPluginRecord(namespace)?.summary;
|
|
4448
|
-
if (!summary) return Promise.resolve(null);
|
|
4449
|
-
return currentDeps().loadLocale(summary, file);
|
|
4450
|
-
});
|
|
4453
|
+
installLocaleResolver();
|
|
4451
4454
|
await enqueue(async () => {
|
|
4452
4455
|
if (started) return;
|
|
4453
4456
|
if (options.retryFailed) {
|
|
@@ -5028,6 +5031,10 @@ function Auth({ onLogin }) {
|
|
|
5028
5031
|
toast2.error(t2("auth.secondFactorUnavailable"));
|
|
5029
5032
|
return;
|
|
5030
5033
|
}
|
|
5034
|
+
if (error?.response?.data?.code === "external_login_required") {
|
|
5035
|
+
toast2.error(t2("auth.externalLoginRequired"));
|
|
5036
|
+
return;
|
|
5037
|
+
}
|
|
5031
5038
|
toast2.error(
|
|
5032
5039
|
error?.response?.data?.error || error?.message || t2(fallbackKey)
|
|
5033
5040
|
);
|
package/dist/host-commands.js
CHANGED
|
@@ -17,7 +17,7 @@ export function execCommand(client, command, timeoutMs = 30000) {
|
|
|
17
17
|
if (!settled) {
|
|
18
18
|
settled = true;
|
|
19
19
|
cleanup();
|
|
20
|
-
reject(new Error(`Command timeout after ${timeoutMs}ms
|
|
20
|
+
reject(new Error(`Command timeout after ${timeoutMs}ms`));
|
|
21
21
|
}
|
|
22
22
|
}, timeoutMs);
|
|
23
23
|
const cleanup = () => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@termix-ssh/plugin-sdk",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.5",
|
|
4
4
|
"description": "The contract between Termix core and a plugin: types, the capability catalog and the manifest schema.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -148,6 +148,18 @@
|
|
|
148
148
|
},
|
|
149
149
|
"@testing-library/react": {
|
|
150
150
|
"optional": true
|
|
151
|
+
},
|
|
152
|
+
"i18next": {
|
|
153
|
+
"optional": true
|
|
154
|
+
},
|
|
155
|
+
"react-dom": {
|
|
156
|
+
"optional": true
|
|
157
|
+
},
|
|
158
|
+
"react-i18next": {
|
|
159
|
+
"optional": true
|
|
160
|
+
},
|
|
161
|
+
"sonner": {
|
|
162
|
+
"optional": true
|
|
151
163
|
}
|
|
152
164
|
},
|
|
153
165
|
"publishConfig": {
|