autho 3.0.5 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -2
- package/dist/autho.js +1402 -479
- package/package.json +1 -1
package/dist/autho.js
CHANGED
|
@@ -590,7 +590,7 @@ var package_default;
|
|
|
590
590
|
var init_package = __esm(() => {
|
|
591
591
|
package_default = {
|
|
592
592
|
name: "autho",
|
|
593
|
-
version: "3.0
|
|
593
|
+
version: "3.1.0",
|
|
594
594
|
description: "Local-first secret manager for humans and coding agents, rebuilt on Bun",
|
|
595
595
|
type: "module",
|
|
596
596
|
bin: {
|
|
@@ -880,6 +880,19 @@ class AuthoDatabase {
|
|
|
880
880
|
LIMIT 1`).get(id);
|
|
881
881
|
return row ?? null;
|
|
882
882
|
}
|
|
883
|
+
listLeases(limit) {
|
|
884
|
+
return this.db.query(`SELECT
|
|
885
|
+
id,
|
|
886
|
+
name,
|
|
887
|
+
secret_refs AS secretRefs,
|
|
888
|
+
expires_at AS expiresAt,
|
|
889
|
+
revoked_at AS revokedAt,
|
|
890
|
+
created_at AS createdAt,
|
|
891
|
+
include_links AS includeLinks
|
|
892
|
+
FROM leases
|
|
893
|
+
ORDER BY created_at DESC
|
|
894
|
+
LIMIT ?1`).all(limit);
|
|
895
|
+
}
|
|
883
896
|
revokeLease(id, revokedAt) {
|
|
884
897
|
this.db.query("UPDATE leases SET revoked_at = ?2 WHERE id = ?1").run(id, revokedAt);
|
|
885
898
|
}
|
|
@@ -1609,7 +1622,8 @@ var init_settings = __esm(() => {
|
|
|
1609
1622
|
{ kind: "boolean", key: "mouse", label: "Mouse", help: "Click and drag-select in the TUI (off = your terminal's own selection). Applies on next start", default: true },
|
|
1610
1623
|
{ kind: "number", key: "defaultLeaseTtl", label: "Lease TTL", help: "Used by `lease create` when --ttl is not given (0 = always ask)", unit: "s", default: 0, min: 0, max: 2592000, zero: "required" },
|
|
1611
1624
|
{ kind: "number", key: "daemonTtlSeconds", label: "Daemon session", help: "How long `daemon unlock` keeps the vault open without --ttl", unit: "s", default: 900, min: 60, max: 86400 },
|
|
1612
|
-
{ kind: "number", key: "webPort", label: "Web UI port", help: "Port for `autho web serve` when --port is not given", default: 8061, min: 1024, max: 65535 }
|
|
1625
|
+
{ kind: "number", key: "webPort", label: "Web UI port", help: "Port for `autho web serve` (when --port is not given) and for the web UI the TUI serves", default: 8061, min: 1024, max: 65535 },
|
|
1626
|
+
{ kind: "boolean", key: "webWithTui", label: "Web UI with TUI", help: "Serve the web UI on localhost while the TUI is open; it unlocks on its own. Applies on next start", default: true, env: "AUTHO_WEB_WITH_TUI" }
|
|
1613
1627
|
];
|
|
1614
1628
|
});
|
|
1615
1629
|
|
|
@@ -2334,6 +2348,17 @@ function recoveryFileContent(vaultPath, token) {
|
|
|
2334
2348
|
].join(`
|
|
2335
2349
|
`);
|
|
2336
2350
|
}
|
|
2351
|
+
function parseRecoveryFile(content) {
|
|
2352
|
+
const lines = content.split(/\r?\n/);
|
|
2353
|
+
const tokenLineIdx = lines.findIndex((l) => l.trim() === "RECOVERY TOKEN:");
|
|
2354
|
+
if (tokenLineIdx === -1)
|
|
2355
|
+
throw new Error("Invalid recovery file format");
|
|
2356
|
+
const rawTokenLine = lines.slice(tokenLineIdx + 1).find((l) => l.trim() !== "") ?? "";
|
|
2357
|
+
const token = rawTokenLine.trim().replace(/-/g, "").toLowerCase();
|
|
2358
|
+
if (!token)
|
|
2359
|
+
throw new Error("Invalid recovery file format: missing token");
|
|
2360
|
+
return token;
|
|
2361
|
+
}
|
|
2337
2362
|
|
|
2338
2363
|
class VaultSession {
|
|
2339
2364
|
db;
|
|
@@ -2548,7 +2573,12 @@ class VaultSession {
|
|
|
2548
2573
|
};
|
|
2549
2574
|
}
|
|
2550
2575
|
importLegacyFile(filePath, options) {
|
|
2551
|
-
|
|
2576
|
+
return this.importLegacy(JSON.parse(readFileSync3(filePath, "utf8")), options);
|
|
2577
|
+
}
|
|
2578
|
+
importLegacy(raw, options) {
|
|
2579
|
+
if (!Array.isArray(raw)) {
|
|
2580
|
+
throw new Error("Legacy backup must be a JSON array of secrets");
|
|
2581
|
+
}
|
|
2552
2582
|
return this.sealedWrite(() => this.importLegacyEntries(raw, options));
|
|
2553
2583
|
}
|
|
2554
2584
|
importLegacyEntries(raw, options) {
|
|
@@ -2771,6 +2801,9 @@ class VaultSession {
|
|
|
2771
2801
|
});
|
|
2772
2802
|
return lease;
|
|
2773
2803
|
}
|
|
2804
|
+
listLeases(limit = 100) {
|
|
2805
|
+
return this.db.listLeases(limit).map(parseLease);
|
|
2806
|
+
}
|
|
2774
2807
|
revokeLease(id) {
|
|
2775
2808
|
return this.sealedWrite(() => {
|
|
2776
2809
|
const lease = this.getLeaseOrThrow(id);
|
|
@@ -3110,6 +3143,867 @@ async function deletePin(vaultPath) {
|
|
|
3110
3143
|
var VAULT_PASSWORD_SERVICE = "autho.vault", USER_SECRETS_SERVICE = "autho", PIN_SERVICE = "autho.pin", SEAL_SERVICE = "autho.seal";
|
|
3111
3144
|
var init_os_secrets = () => {};
|
|
3112
3145
|
|
|
3146
|
+
// apps/web/src/api.ts
|
|
3147
|
+
import { randomBytes as randomBytes6 } from "crypto";
|
|
3148
|
+
import { existsSync as existsSync5 } from "fs";
|
|
3149
|
+
import { basename as basename3, join as join3, resolve as resolve4 } from "path";
|
|
3150
|
+
function str(body, key, max) {
|
|
3151
|
+
const value = body[key];
|
|
3152
|
+
if (typeof value !== "string")
|
|
3153
|
+
throw new HttpError(400, `${key} is required`);
|
|
3154
|
+
if (value.length > max)
|
|
3155
|
+
throw new HttpError(400, `${key} is too long`);
|
|
3156
|
+
return value;
|
|
3157
|
+
}
|
|
3158
|
+
function optStr(body, key, max) {
|
|
3159
|
+
return body[key] === undefined || body[key] === null ? undefined : str(body, key, max);
|
|
3160
|
+
}
|
|
3161
|
+
function secretType(body) {
|
|
3162
|
+
const type = str(body, "type", 16);
|
|
3163
|
+
if (!SECRET_TYPES.has(type))
|
|
3164
|
+
throw new HttpError(400, "type must be password, note or otp");
|
|
3165
|
+
return type;
|
|
3166
|
+
}
|
|
3167
|
+
function b64url(body, key, max) {
|
|
3168
|
+
const value = str(body, key, max);
|
|
3169
|
+
if (!B64URL2.test(value))
|
|
3170
|
+
throw new HttpError(400, `${key} is malformed`);
|
|
3171
|
+
return value;
|
|
3172
|
+
}
|
|
3173
|
+
function totpCode(body) {
|
|
3174
|
+
const code = optStr(body, "totp", 16)?.replace(/\s/g, "");
|
|
3175
|
+
if (code !== undefined && code !== "" && !/^\d{6,8}$/.test(code))
|
|
3176
|
+
throw new HttpError(400, "The authenticator code is 6 digits");
|
|
3177
|
+
return code || undefined;
|
|
3178
|
+
}
|
|
3179
|
+
function credentials(body, allowRecovery) {
|
|
3180
|
+
switch (body.method) {
|
|
3181
|
+
case "password":
|
|
3182
|
+
return { password: str(body, "password", LIMITS.password), totp: totpCode(body) };
|
|
3183
|
+
case "passkey":
|
|
3184
|
+
return { password: "", passkey: { credentialId: b64url(body, "credentialId", 1400), prfOutput: b64url(body, "prfOutput", 64) } };
|
|
3185
|
+
case "recovery":
|
|
3186
|
+
if (!allowRecovery)
|
|
3187
|
+
break;
|
|
3188
|
+
try {
|
|
3189
|
+
return { password: "", recovery: parseRecoveryFile(str(body, "recoveryFile", 4096)) };
|
|
3190
|
+
} catch {
|
|
3191
|
+
throw new HttpError(400, "That is not an autho recovery file");
|
|
3192
|
+
}
|
|
3193
|
+
}
|
|
3194
|
+
throw new HttpError(400, "Unknown unlock method");
|
|
3195
|
+
}
|
|
3196
|
+
async function throttled(ctx, body, allowRecovery, check) {
|
|
3197
|
+
const creds = credentials(body, allowRecovery);
|
|
3198
|
+
if (!ctx.throttle.begin()) {
|
|
3199
|
+
const wait = Math.max(1, Math.ceil(ctx.throttle.retryAfterMs() / 1000));
|
|
3200
|
+
throw new HttpError(429, `Too many attempts \u2014 try again in ${wait}s`, { "retry-after": String(wait) });
|
|
3201
|
+
}
|
|
3202
|
+
let result;
|
|
3203
|
+
try {
|
|
3204
|
+
result = await check(creds);
|
|
3205
|
+
} catch (error) {
|
|
3206
|
+
ctx.throttle.fail();
|
|
3207
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
3208
|
+
throw new HttpError(401, /TOTP/.test(message) ? "Invalid or missing authenticator code" : message);
|
|
3209
|
+
}
|
|
3210
|
+
ctx.throttle.succeed();
|
|
3211
|
+
return result;
|
|
3212
|
+
}
|
|
3213
|
+
function uiPrefs() {
|
|
3214
|
+
return Object.fromEntries(["revealSeconds", "clipboardClearSeconds", "idleLockSeconds", "passwordLength", "passwordSymbols"].map((key) => [key, resolvePreference(key).value]));
|
|
3215
|
+
}
|
|
3216
|
+
function sessionInfo(ctx, session) {
|
|
3217
|
+
const { idleAt, hardAt } = ctx.sessions.expiresAt(session);
|
|
3218
|
+
return {
|
|
3219
|
+
csrf: session.csrf,
|
|
3220
|
+
idleAt,
|
|
3221
|
+
hardAt,
|
|
3222
|
+
prefs: uiPrefs(),
|
|
3223
|
+
vault: { name: basename3(ctx.vaultPath), path: ctx.vaultPath },
|
|
3224
|
+
version: package_default.version
|
|
3225
|
+
};
|
|
3226
|
+
}
|
|
3227
|
+
function secretDetail(session, entry) {
|
|
3228
|
+
return { ...entry, ...session.getLinks(entry.id) };
|
|
3229
|
+
}
|
|
3230
|
+
function findEntry(session, ref) {
|
|
3231
|
+
const entry = session.listSecretIndex().find((e) => e.id === ref || e.name === ref);
|
|
3232
|
+
if (!entry)
|
|
3233
|
+
throw new HttpError(404, `Secret not found: ${ref}`);
|
|
3234
|
+
return entry;
|
|
3235
|
+
}
|
|
3236
|
+
function metadataFrom(body, type) {
|
|
3237
|
+
const metadata = {};
|
|
3238
|
+
const url = optStr(body, "url", LIMITS.short)?.trim();
|
|
3239
|
+
const description = optStr(body, "description", LIMITS.notes)?.trim();
|
|
3240
|
+
if (type === "password" && url) {
|
|
3241
|
+
if (!/^https?:\/\//i.test(url))
|
|
3242
|
+
throw new HttpError(400, "URL must start with http:// or https://");
|
|
3243
|
+
metadata.url = url;
|
|
3244
|
+
}
|
|
3245
|
+
if (description)
|
|
3246
|
+
metadata.description = description;
|
|
3247
|
+
return metadata;
|
|
3248
|
+
}
|
|
3249
|
+
async function withVault(ctx, session, fn) {
|
|
3250
|
+
const vault = new VaultSession(new AuthoDatabase(ctx.vaultPath), session.rootKey, {
|
|
3251
|
+
sealBound: session.sealBound,
|
|
3252
|
+
sealRecord: await loadSealRecord(ctx.vaultPath)
|
|
3253
|
+
});
|
|
3254
|
+
try {
|
|
3255
|
+
return fn(vault);
|
|
3256
|
+
} finally {
|
|
3257
|
+
await closeSessionAndRecordSeal(ctx.vaultPath, vault);
|
|
3258
|
+
}
|
|
3259
|
+
}
|
|
3260
|
+
function requireAdmin(ctx, session) {
|
|
3261
|
+
const admin = ctx.sessions.admin(session);
|
|
3262
|
+
if (!admin)
|
|
3263
|
+
throw new HttpError(403, "Confirm your identity to change security settings");
|
|
3264
|
+
return admin;
|
|
3265
|
+
}
|
|
3266
|
+
async function adminChange(ctx, admin, fn) {
|
|
3267
|
+
const result = await fn();
|
|
3268
|
+
await saveSealRecord(ctx.vaultPath, admin.sealRecord());
|
|
3269
|
+
return result;
|
|
3270
|
+
}
|
|
3271
|
+
async function securityStatus(ctx, session) {
|
|
3272
|
+
const auth = VaultService.getAuthConfig(ctx.vaultPath);
|
|
3273
|
+
const osStore = !osSecretsDisabled();
|
|
3274
|
+
const admin = ctx.sessions.admin(session);
|
|
3275
|
+
return {
|
|
3276
|
+
adminUntil: admin ? session.admin?.expiresAt ?? null : null,
|
|
3277
|
+
adminHasPassword: admin?.hasPassword ?? false,
|
|
3278
|
+
keychain: osStore ? await loadVaultPassword(ctx.vaultPath) !== null : false,
|
|
3279
|
+
osStore,
|
|
3280
|
+
passkeys: VaultService.listPasskeys(ctx.vaultPath).map(({ id, label, createdAt, credentialId }) => ({ id, label, createdAt, credentialId })),
|
|
3281
|
+
pin: osStore ? await hasPinSet(ctx.vaultPath) : false,
|
|
3282
|
+
recoveryAt: auth?.recovery?.createdAt ?? null,
|
|
3283
|
+
totp: auth?.totp !== undefined
|
|
3284
|
+
};
|
|
3285
|
+
}
|
|
3286
|
+
function route(method, path, auth, handler) {
|
|
3287
|
+
const keys = [];
|
|
3288
|
+
const pattern = new RegExp(`^${path.replace(/:(\w+)/g, (_, key) => {
|
|
3289
|
+
keys.push(key);
|
|
3290
|
+
return "([^/]+)";
|
|
3291
|
+
})}$`);
|
|
3292
|
+
routes.push({ method, pattern, keys, auth, handler });
|
|
3293
|
+
}
|
|
3294
|
+
function matchRoute(method, pathname) {
|
|
3295
|
+
let pathMatched = false;
|
|
3296
|
+
for (const candidate of routes) {
|
|
3297
|
+
const match = candidate.pattern.exec(pathname);
|
|
3298
|
+
if (!match)
|
|
3299
|
+
continue;
|
|
3300
|
+
pathMatched = true;
|
|
3301
|
+
if (candidate.method !== method)
|
|
3302
|
+
continue;
|
|
3303
|
+
const params = {};
|
|
3304
|
+
try {
|
|
3305
|
+
candidate.keys.forEach((key, index) => {
|
|
3306
|
+
params[key] = decodeURIComponent(match[index + 1]);
|
|
3307
|
+
});
|
|
3308
|
+
} catch {
|
|
3309
|
+
return null;
|
|
3310
|
+
}
|
|
3311
|
+
return { route: candidate, params };
|
|
3312
|
+
}
|
|
3313
|
+
return pathMatched ? "method" : null;
|
|
3314
|
+
}
|
|
3315
|
+
var HttpError, LIMITS, B64URL2, SECRET_TYPES, PREF_KEYS, GUARDED_PREFS, routes;
|
|
3316
|
+
var init_api = __esm(() => {
|
|
3317
|
+
init_src();
|
|
3318
|
+
init_src3();
|
|
3319
|
+
init_os_secrets();
|
|
3320
|
+
init_package();
|
|
3321
|
+
HttpError = class HttpError extends Error {
|
|
3322
|
+
status;
|
|
3323
|
+
headers;
|
|
3324
|
+
constructor(status, message, headers = {}) {
|
|
3325
|
+
super(message);
|
|
3326
|
+
this.status = status;
|
|
3327
|
+
this.headers = headers;
|
|
3328
|
+
}
|
|
3329
|
+
};
|
|
3330
|
+
LIMITS = { name: 200, value: 65536, short: 512, notes: 8192, password: 1024 };
|
|
3331
|
+
B64URL2 = /^[A-Za-z0-9_-]+$/;
|
|
3332
|
+
SECRET_TYPES = new Set(["password", "note", "otp"]);
|
|
3333
|
+
PREF_KEYS = PREFERENCES.map((spec) => spec.key);
|
|
3334
|
+
GUARDED_PREFS = new Set(["idleLockSeconds", "clipboardClearSeconds"]);
|
|
3335
|
+
routes = [];
|
|
3336
|
+
route("GET", "/api/auth", false, (ctx) => {
|
|
3337
|
+
const auth = VaultService.getAuthConfig(ctx.vaultPath);
|
|
3338
|
+
const initialized = new AuthoDatabase(ctx.vaultPath);
|
|
3339
|
+
let ready;
|
|
3340
|
+
try {
|
|
3341
|
+
ready = initialized.getVaultConfig() !== null;
|
|
3342
|
+
} finally {
|
|
3343
|
+
initialized.close();
|
|
3344
|
+
}
|
|
3345
|
+
return {
|
|
3346
|
+
data: {
|
|
3347
|
+
initialized: ready,
|
|
3348
|
+
passkeys: VaultService.listPasskeys(ctx.vaultPath).map(({ credentialId, prfSalt, transports, label }) => ({ credentialId, prfSalt, transports, label })),
|
|
3349
|
+
recovery: auth?.recovery !== undefined,
|
|
3350
|
+
rpId: "localhost",
|
|
3351
|
+
totp: auth?.totp !== undefined,
|
|
3352
|
+
vault: basename3(ctx.vaultPath)
|
|
3353
|
+
}
|
|
3354
|
+
};
|
|
3355
|
+
});
|
|
3356
|
+
route("POST", "/api/session/unlock", false, async (ctx, { body }) => {
|
|
3357
|
+
const { rootKey, sealBound } = await throttled(ctx, body, true, async (creds) => {
|
|
3358
|
+
const vault = VaultService.unlock(ctx.vaultPath, { ...creds, sealRecord: await loadSealRecord(ctx.vaultPath) });
|
|
3359
|
+
const unlocked = { rootKey: vault.getRootKey(), sealBound: vault.sealBound };
|
|
3360
|
+
await closeSessionAndRecordSeal(ctx.vaultPath, vault);
|
|
3361
|
+
return unlocked;
|
|
3362
|
+
});
|
|
3363
|
+
const session = ctx.sessions.create(rootKey, sealBound);
|
|
3364
|
+
return { data: sessionInfo(ctx, session), session };
|
|
3365
|
+
});
|
|
3366
|
+
route("POST", "/api/session/lock", false, () => ({ data: { locked: true }, session: "ended" }));
|
|
3367
|
+
route("GET", "/api/session", true, (ctx, { session }) => ({ data: sessionInfo(ctx, session) }));
|
|
3368
|
+
route("GET", "/api/secrets", true, (ctx, { session }) => withVault(ctx, session, (vault) => ({ data: vault.listSecretIndex() })));
|
|
3369
|
+
route("POST", "/api/secrets", true, (ctx, { body, session }) => withVault(ctx, session, (vault) => {
|
|
3370
|
+
const type = secretType(body);
|
|
3371
|
+
const username = type === "note" ? undefined : optStr(body, "username", LIMITS.short)?.trim() || undefined;
|
|
3372
|
+
const created = vault.addSecret({
|
|
3373
|
+
metadata: metadataFrom(body, type),
|
|
3374
|
+
name: str(body, "name", LIMITS.name).trim(),
|
|
3375
|
+
type,
|
|
3376
|
+
username,
|
|
3377
|
+
value: str(body, "value", LIMITS.value)
|
|
3378
|
+
});
|
|
3379
|
+
return { data: created, status: 201 };
|
|
3380
|
+
}));
|
|
3381
|
+
route("GET", "/api/secrets/:ref", true, (ctx, { params, session }) => withVault(ctx, session, (vault) => ({ data: secretDetail(vault, findEntry(vault, params.ref)) })));
|
|
3382
|
+
route("PATCH", "/api/secrets/:ref", true, (ctx, { body, params, session }) => withVault(ctx, session, (vault) => {
|
|
3383
|
+
const existing = findEntry(vault, params.ref);
|
|
3384
|
+
const type = body.type === undefined ? existing.type : secretType(body);
|
|
3385
|
+
const parsed = metadataFrom(body, type);
|
|
3386
|
+
const metadata = {};
|
|
3387
|
+
if ("url" in body || type !== "password")
|
|
3388
|
+
metadata.url = parsed.url;
|
|
3389
|
+
if ("description" in body)
|
|
3390
|
+
metadata.description = parsed.description;
|
|
3391
|
+
const updated = vault.updateSecret(existing.id, {
|
|
3392
|
+
metadata,
|
|
3393
|
+
name: optStr(body, "name", LIMITS.name)?.trim() || undefined,
|
|
3394
|
+
type,
|
|
3395
|
+
username: type === "note" ? "" : optStr(body, "username", LIMITS.short)?.trim(),
|
|
3396
|
+
value: optStr(body, "value", LIMITS.value) || undefined
|
|
3397
|
+
});
|
|
3398
|
+
return { data: updated };
|
|
3399
|
+
}));
|
|
3400
|
+
route("DELETE", "/api/secrets/:ref", true, (ctx, { params, query, session }) => withVault(ctx, session, (vault) => ({ data: vault.removeSecret(params.ref, { withLinked: query.get("withLinked") === "1" }) })));
|
|
3401
|
+
route("POST", "/api/secrets/:ref/reveal", true, (ctx, { params, session }) => withVault(ctx, session, (vault) => {
|
|
3402
|
+
const secret = vault.getSecret(params.ref);
|
|
3403
|
+
return { data: { value: secret.value } };
|
|
3404
|
+
}));
|
|
3405
|
+
route("GET", "/api/secrets/:ref/otp", true, (ctx, { params, query, session }) => withVault(ctx, session, (vault) => ({ data: vault.generateOtp(params.ref, { audit: query.get("copy") === "1" }) })));
|
|
3406
|
+
route("POST", "/api/links", true, (ctx, { body, session }) => withVault(ctx, session, (vault) => ({ data: vault.linkSecrets(str(body, "primary", LIMITS.name), str(body, "secret", LIMITS.name)) })));
|
|
3407
|
+
route("DELETE", "/api/links", true, (ctx, { body, session }) => withVault(ctx, session, (vault) => ({ data: vault.unlinkSecrets(str(body, "primary", LIMITS.name), str(body, "secret", LIMITS.name)) })));
|
|
3408
|
+
route("GET", "/api/leases", true, (ctx, { session }) => withVault(ctx, session, (vault) => ({ data: vault.listLeases(200).map((lease) => ({ ...lease, coverage: vault.showLease(lease.id).coverage })) })));
|
|
3409
|
+
route("POST", "/api/leases", true, (ctx, { body, session }) => withVault(ctx, session, (vault) => {
|
|
3410
|
+
const refs = body.secrets;
|
|
3411
|
+
if (!Array.isArray(refs) || refs.length === 0 || refs.length > 500 || !refs.every((r) => typeof r === "string" && r.length <= LIMITS.name)) {
|
|
3412
|
+
throw new HttpError(400, "Pick at least one secret");
|
|
3413
|
+
}
|
|
3414
|
+
const ttl = body.ttlSeconds;
|
|
3415
|
+
if (typeof ttl !== "number" || !Number.isInteger(ttl) || ttl <= 0 || ttl > 2592000) {
|
|
3416
|
+
throw new HttpError(400, "TTL must be between 1 second and 30 days");
|
|
3417
|
+
}
|
|
3418
|
+
const lease = vault.createLease({
|
|
3419
|
+
name: optStr(body, "name", LIMITS.name)?.trim() || "web",
|
|
3420
|
+
noLinks: body.includeLinks === false,
|
|
3421
|
+
secretRefs: refs,
|
|
3422
|
+
ttlSeconds: ttl
|
|
3423
|
+
});
|
|
3424
|
+
return { data: lease, status: 201 };
|
|
3425
|
+
}));
|
|
3426
|
+
route("POST", "/api/leases/:id/revoke", true, (ctx, { params, session }) => withVault(ctx, session, (vault) => ({ data: vault.revokeLease(params.id) })));
|
|
3427
|
+
route("GET", "/api/audit", true, (ctx, { query, session }) => {
|
|
3428
|
+
const limit = Math.min(500, Math.max(1, Number(query.get("limit") ?? 100) || 100));
|
|
3429
|
+
return withVault(ctx, session, (vault) => ({ data: vault.listAudit(limit) }));
|
|
3430
|
+
});
|
|
3431
|
+
route("GET", "/api/vault/verify", true, (ctx, { session }) => withVault(ctx, session, (vault) => ({ data: vault.verifySeal() })));
|
|
3432
|
+
route("POST", "/api/import", true, (ctx, { body, session }) => withVault(ctx, session, (vault) => ({ data: vault.importLegacy(body.entries, { skipExisting: body.skipExisting !== false }) })));
|
|
3433
|
+
route("GET", "/api/settings", true, async (ctx, { session }) => ({
|
|
3434
|
+
data: {
|
|
3435
|
+
about: { bun: Bun.version, platform: `${process.platform}-${process.arch}`, version: package_default.version },
|
|
3436
|
+
paths: {
|
|
3437
|
+
config: configFilePath(),
|
|
3438
|
+
envHome: process.env.AUTHO_HOME !== undefined,
|
|
3439
|
+
vaultDir: loadConfig().vaultDir ?? null,
|
|
3440
|
+
daemon: defaultDaemonStatePath(),
|
|
3441
|
+
home: authoHomeDir(),
|
|
3442
|
+
project: defaultProjectFilePath(),
|
|
3443
|
+
vault: ctx.vaultPath
|
|
3444
|
+
},
|
|
3445
|
+
preferences: PREFERENCES.map((spec) => {
|
|
3446
|
+
const { value, source } = resolvePreference(spec.key);
|
|
3447
|
+
return { ...spec, display: formatPreference(spec.key, value), guarded: GUARDED_PREFS.has(spec.key), source, value };
|
|
3448
|
+
}),
|
|
3449
|
+
security: await securityStatus(ctx, session)
|
|
3450
|
+
}
|
|
3451
|
+
}));
|
|
3452
|
+
route("PUT", "/api/settings/preferences/:key", true, (ctx, { body, params, session }) => {
|
|
3453
|
+
const key = params.key;
|
|
3454
|
+
if (!PREF_KEYS.includes(key))
|
|
3455
|
+
throw new HttpError(404, `Unknown setting: ${params.key}`);
|
|
3456
|
+
if (GUARDED_PREFS.has(key))
|
|
3457
|
+
requireAdmin(ctx, session);
|
|
3458
|
+
if (body.value === null) {
|
|
3459
|
+
setPreference(key, null);
|
|
3460
|
+
} else if (typeof body.value === "number" || typeof body.value === "boolean" || typeof body.value === "string") {
|
|
3461
|
+
try {
|
|
3462
|
+
setPreference(key, parsePreference(key, String(body.value)));
|
|
3463
|
+
} catch (error) {
|
|
3464
|
+
throw new HttpError(400, error instanceof Error ? error.message : String(error));
|
|
3465
|
+
}
|
|
3466
|
+
} else {
|
|
3467
|
+
throw new HttpError(400, "value is required");
|
|
3468
|
+
}
|
|
3469
|
+
const { value, source } = resolvePreference(key);
|
|
3470
|
+
return { data: { display: formatPreference(key, value), key, source, value, prefs: uiPrefs() } };
|
|
3471
|
+
});
|
|
3472
|
+
route("PUT", "/api/settings/vault-dir", true, (ctx, { body, session }) => {
|
|
3473
|
+
requireAdmin(ctx, session);
|
|
3474
|
+
if (process.env.AUTHO_HOME)
|
|
3475
|
+
throw new HttpError(400, "AUTHO_HOME is set, so it decides the folder");
|
|
3476
|
+
const raw = optStr(body, "path", 1024)?.trim();
|
|
3477
|
+
const config = { ...loadConfig() };
|
|
3478
|
+
const target = raw ? resolve4(raw).replace(/\\/g, "/") : null;
|
|
3479
|
+
if (target)
|
|
3480
|
+
config.vaultDir = target;
|
|
3481
|
+
else
|
|
3482
|
+
delete config.vaultDir;
|
|
3483
|
+
saveConfig(config);
|
|
3484
|
+
return { data: { home: authoHomeDir(), missingVault: target !== null && !existsSync5(join3(target, "vault.db")), vaultDir: target } };
|
|
3485
|
+
});
|
|
3486
|
+
route("POST", "/api/admin/authorize", true, async (ctx, { body, session }) => {
|
|
3487
|
+
const handle = await throttled(ctx, body, false, async (creds) => VaultService.authorize(ctx.vaultPath, { ...creds, sealRecord: await loadSealRecord(ctx.vaultPath) }));
|
|
3488
|
+
ctx.sessions.grantAdmin(session, handle);
|
|
3489
|
+
return { data: await securityStatus(ctx, session) };
|
|
3490
|
+
});
|
|
3491
|
+
route("POST", "/api/admin/release", true, async (ctx, { session }) => {
|
|
3492
|
+
ctx.sessions.dropAdmin(session);
|
|
3493
|
+
return { data: await securityStatus(ctx, session) };
|
|
3494
|
+
});
|
|
3495
|
+
route("POST", "/api/admin/password", true, async (ctx, { body, session }) => {
|
|
3496
|
+
const admin = requireAdmin(ctx, session);
|
|
3497
|
+
const next = str(body, "newPassword", LIMITS.password);
|
|
3498
|
+
if (next.length < MIN_PASSWORD_LENGTH)
|
|
3499
|
+
throw new HttpError(400, `Use at least ${MIN_PASSWORD_LENGTH} characters`);
|
|
3500
|
+
await adminChange(ctx, admin, async () => {
|
|
3501
|
+
admin.changePassword(next);
|
|
3502
|
+
if (await loadVaultPassword(ctx.vaultPath))
|
|
3503
|
+
await storeVaultPassword(ctx.vaultPath, next);
|
|
3504
|
+
});
|
|
3505
|
+
return { data: await securityStatus(ctx, session) };
|
|
3506
|
+
});
|
|
3507
|
+
route("POST", "/api/admin/totp/setup", true, (ctx, { session }) => {
|
|
3508
|
+
requireAdmin(ctx, session);
|
|
3509
|
+
session.pendingTotp = VaultService.setupTotp(ctx.vaultPath);
|
|
3510
|
+
return { data: session.pendingTotp };
|
|
3511
|
+
});
|
|
3512
|
+
route("POST", "/api/admin/totp", true, async (ctx, { body, session }) => {
|
|
3513
|
+
const admin = requireAdmin(ctx, session);
|
|
3514
|
+
const pending = session.pendingTotp;
|
|
3515
|
+
if (!pending)
|
|
3516
|
+
throw new HttpError(400, "Start two-factor setup first");
|
|
3517
|
+
const code = totpCode({ totp: body.code });
|
|
3518
|
+
if (!code)
|
|
3519
|
+
throw new HttpError(400, "Enter the code from your authenticator app");
|
|
3520
|
+
try {
|
|
3521
|
+
await adminChange(ctx, admin, () => admin.enableTotp(pending.secret, code));
|
|
3522
|
+
} catch (error) {
|
|
3523
|
+
throw new HttpError(400, error instanceof Error ? error.message : String(error));
|
|
3524
|
+
}
|
|
3525
|
+
session.pendingTotp = null;
|
|
3526
|
+
return { data: await securityStatus(ctx, session) };
|
|
3527
|
+
});
|
|
3528
|
+
route("DELETE", "/api/admin/totp", true, async (ctx, { session }) => {
|
|
3529
|
+
const admin = requireAdmin(ctx, session);
|
|
3530
|
+
await adminChange(ctx, admin, () => admin.removeTotp());
|
|
3531
|
+
return { data: await securityStatus(ctx, session) };
|
|
3532
|
+
});
|
|
3533
|
+
route("POST", "/api/admin/passkeys/options", true, (ctx, { session }) => {
|
|
3534
|
+
requireAdmin(ctx, session);
|
|
3535
|
+
const prfSalt = randomBytes6(32).toString("base64url");
|
|
3536
|
+
session.pendingPasskey = { prfSalt };
|
|
3537
|
+
return {
|
|
3538
|
+
data: {
|
|
3539
|
+
exclude: VaultService.listPasskeys(ctx.vaultPath).map((p) => p.credentialId),
|
|
3540
|
+
prfSalt,
|
|
3541
|
+
rpId: "localhost",
|
|
3542
|
+
userId: randomBytes6(16).toString("base64url"),
|
|
3543
|
+
userName: `autho (${basename3(ctx.vaultPath)})`
|
|
3544
|
+
}
|
|
3545
|
+
};
|
|
3546
|
+
});
|
|
3547
|
+
route("POST", "/api/admin/passkeys", true, async (ctx, { body, session }) => {
|
|
3548
|
+
const admin = requireAdmin(ctx, session);
|
|
3549
|
+
const pending = session.pendingPasskey;
|
|
3550
|
+
if (!pending)
|
|
3551
|
+
throw new HttpError(400, "Start adding a passkey first");
|
|
3552
|
+
const transports = Array.isArray(body.transports) ? body.transports.filter((t) => typeof t === "string" && /^[a-z-]{1,20}$/.test(t)).slice(0, 8) : undefined;
|
|
3553
|
+
const info = await adminChange(ctx, admin, () => admin.addPasskey({
|
|
3554
|
+
credentialId: b64url(body, "credentialId", 1400),
|
|
3555
|
+
label: str(body, "label", 64).trim() || "passkey",
|
|
3556
|
+
prfOutput: b64url(body, "prfOutput", 64),
|
|
3557
|
+
prfSalt: pending.prfSalt,
|
|
3558
|
+
transports
|
|
3559
|
+
}));
|
|
3560
|
+
session.pendingPasskey = null;
|
|
3561
|
+
return { data: { added: info.label, security: await securityStatus(ctx, session) } };
|
|
3562
|
+
});
|
|
3563
|
+
route("DELETE", "/api/admin/passkeys/:id", true, async (ctx, { params, session }) => {
|
|
3564
|
+
const admin = requireAdmin(ctx, session);
|
|
3565
|
+
await adminChange(ctx, admin, () => admin.removePasskey(params.id));
|
|
3566
|
+
return { data: await securityStatus(ctx, session) };
|
|
3567
|
+
});
|
|
3568
|
+
route("POST", "/api/admin/recovery", true, async (ctx, { session }) => {
|
|
3569
|
+
const admin = requireAdmin(ctx, session);
|
|
3570
|
+
const { fileContent } = await adminChange(ctx, admin, () => admin.generateRecovery());
|
|
3571
|
+
return { data: { fileContent, security: await securityStatus(ctx, session) } };
|
|
3572
|
+
});
|
|
3573
|
+
route("DELETE", "/api/admin/recovery", true, async (ctx, { session }) => {
|
|
3574
|
+
const admin = requireAdmin(ctx, session);
|
|
3575
|
+
await adminChange(ctx, admin, () => admin.revokeRecovery());
|
|
3576
|
+
return { data: await securityStatus(ctx, session) };
|
|
3577
|
+
});
|
|
3578
|
+
route("POST", "/api/admin/keychain", true, async (ctx, { session }) => {
|
|
3579
|
+
const admin = requireAdmin(ctx, session);
|
|
3580
|
+
if (osSecretsDisabled())
|
|
3581
|
+
throw new HttpError(400, "The OS keychain is not available");
|
|
3582
|
+
if (!admin.hasPassword)
|
|
3583
|
+
throw new HttpError(400, "Confirm with your master password to save it in the keychain");
|
|
3584
|
+
if (!await storeVaultPassword(ctx.vaultPath, admin.masterPassword()))
|
|
3585
|
+
throw new HttpError(400, "The OS keychain refused the password");
|
|
3586
|
+
return { data: await securityStatus(ctx, session) };
|
|
3587
|
+
});
|
|
3588
|
+
route("DELETE", "/api/admin/keychain", true, async (ctx, { session }) => {
|
|
3589
|
+
await deleteVaultPassword(ctx.vaultPath);
|
|
3590
|
+
return { data: await securityStatus(ctx, session) };
|
|
3591
|
+
});
|
|
3592
|
+
route("POST", "/api/admin/pin", true, async (ctx, { body, session }) => {
|
|
3593
|
+
requireAdmin(ctx, session);
|
|
3594
|
+
if (osSecretsDisabled())
|
|
3595
|
+
throw new HttpError(400, "The OS keychain is not available");
|
|
3596
|
+
const pin = str(body, "pin", 12);
|
|
3597
|
+
if (!/^\d{4,12}$/.test(pin))
|
|
3598
|
+
throw new HttpError(400, "Use 4 to 12 digits");
|
|
3599
|
+
if (!await storePinHash(ctx.vaultPath, pin))
|
|
3600
|
+
throw new HttpError(400, "The OS keychain refused the PIN");
|
|
3601
|
+
return { data: await securityStatus(ctx, session) };
|
|
3602
|
+
});
|
|
3603
|
+
route("DELETE", "/api/admin/pin", true, async (ctx, { session }) => {
|
|
3604
|
+
requireAdmin(ctx, session);
|
|
3605
|
+
await deletePin(ctx.vaultPath);
|
|
3606
|
+
return { data: await securityStatus(ctx, session) };
|
|
3607
|
+
});
|
|
3608
|
+
route("POST", "/api/admin/reseal", true, async (ctx, { body, session }) => {
|
|
3609
|
+
const admin = requireAdmin(ctx, session);
|
|
3610
|
+
if (body.mode !== "accept" && body.mode !== "quarantine")
|
|
3611
|
+
throw new HttpError(400, "mode must be accept or quarantine");
|
|
3612
|
+
const { sealRecord, ...result } = admin.reseal(body.mode);
|
|
3613
|
+
await saveSealRecord(ctx.vaultPath, sealRecord);
|
|
3614
|
+
return { data: result };
|
|
3615
|
+
});
|
|
3616
|
+
});
|
|
3617
|
+
|
|
3618
|
+
// apps/web/src/security.ts
|
|
3619
|
+
import { randomBytes as randomBytes7, timingSafeEqual as timingSafeEqual5 } from "crypto";
|
|
3620
|
+
function isLoopbackHost(host) {
|
|
3621
|
+
return host === "localhost" || host === "::1" || host === "[::1]" || /^127(\.\d{1,3}){3}$/.test(host);
|
|
3622
|
+
}
|
|
3623
|
+
function allowedHosts(port) {
|
|
3624
|
+
return new Set(LOOPBACK_HOSTS.map((host) => `${host}:${port}`));
|
|
3625
|
+
}
|
|
3626
|
+
function hostAllowed(request, hosts) {
|
|
3627
|
+
const host = request.headers.get("host");
|
|
3628
|
+
return host !== null && hosts.has(host.toLowerCase());
|
|
3629
|
+
}
|
|
3630
|
+
function sameOrigin(request, hosts) {
|
|
3631
|
+
const origin = request.headers.get("origin");
|
|
3632
|
+
if (origin !== null) {
|
|
3633
|
+
let parsed;
|
|
3634
|
+
try {
|
|
3635
|
+
parsed = new URL(origin);
|
|
3636
|
+
} catch {
|
|
3637
|
+
return false;
|
|
3638
|
+
}
|
|
3639
|
+
if (parsed.protocol !== "http:" || !hosts.has(parsed.host.toLowerCase()))
|
|
3640
|
+
return false;
|
|
3641
|
+
if (parsed.host.toLowerCase() !== request.headers.get("host")?.toLowerCase())
|
|
3642
|
+
return false;
|
|
3643
|
+
}
|
|
3644
|
+
const site = request.headers.get("sec-fetch-site");
|
|
3645
|
+
if (site !== null && site !== "same-origin" && site !== "none")
|
|
3646
|
+
return false;
|
|
3647
|
+
return true;
|
|
3648
|
+
}
|
|
3649
|
+
function newToken(bytes = 32) {
|
|
3650
|
+
return randomBytes7(bytes).toString("base64url");
|
|
3651
|
+
}
|
|
3652
|
+
function tokensEqual(candidate, expected) {
|
|
3653
|
+
if (!candidate)
|
|
3654
|
+
return false;
|
|
3655
|
+
const a = Buffer.from(candidate);
|
|
3656
|
+
const b = Buffer.from(expected);
|
|
3657
|
+
return a.length === b.length && timingSafeEqual5(a, b);
|
|
3658
|
+
}
|
|
3659
|
+
function securityHeaders(extra = {}) {
|
|
3660
|
+
return { ...BASE_HEADERS, ...extra };
|
|
3661
|
+
}
|
|
3662
|
+
function pageCsp(nonce) {
|
|
3663
|
+
return [
|
|
3664
|
+
"default-src 'none'",
|
|
3665
|
+
`script-src 'nonce-${nonce}'`,
|
|
3666
|
+
"style-src 'self' 'unsafe-inline'",
|
|
3667
|
+
"img-src 'self' data:",
|
|
3668
|
+
"font-src 'self' data:",
|
|
3669
|
+
"connect-src 'self'",
|
|
3670
|
+
"base-uri 'none'",
|
|
3671
|
+
"form-action 'none'",
|
|
3672
|
+
"frame-ancestors 'none'"
|
|
3673
|
+
].join("; ");
|
|
3674
|
+
}
|
|
3675
|
+
function withNonce(html, nonce) {
|
|
3676
|
+
return html.replace(/<script(?=[\s>])/g, `<script nonce="${nonce}"`);
|
|
3677
|
+
}
|
|
3678
|
+
|
|
3679
|
+
class UnlockThrottle {
|
|
3680
|
+
freeAttempts;
|
|
3681
|
+
maxDelayMs;
|
|
3682
|
+
now;
|
|
3683
|
+
failures = 0;
|
|
3684
|
+
blockedUntil = 0;
|
|
3685
|
+
busy = false;
|
|
3686
|
+
constructor(freeAttempts = 5, maxDelayMs = 5 * 60000, now = () => Date.now()) {
|
|
3687
|
+
this.freeAttempts = freeAttempts;
|
|
3688
|
+
this.maxDelayMs = maxDelayMs;
|
|
3689
|
+
this.now = now;
|
|
3690
|
+
}
|
|
3691
|
+
retryAfterMs() {
|
|
3692
|
+
return Math.max(0, this.blockedUntil - this.now());
|
|
3693
|
+
}
|
|
3694
|
+
begin() {
|
|
3695
|
+
if (this.busy || this.retryAfterMs() > 0)
|
|
3696
|
+
return false;
|
|
3697
|
+
this.busy = true;
|
|
3698
|
+
return true;
|
|
3699
|
+
}
|
|
3700
|
+
fail() {
|
|
3701
|
+
this.busy = false;
|
|
3702
|
+
this.failures += 1;
|
|
3703
|
+
if (this.failures >= this.freeAttempts) {
|
|
3704
|
+
const delay = Math.min(this.maxDelayMs, 1000 * 2 ** (this.failures - this.freeAttempts));
|
|
3705
|
+
this.blockedUntil = this.now() + delay;
|
|
3706
|
+
}
|
|
3707
|
+
}
|
|
3708
|
+
succeed() {
|
|
3709
|
+
this.busy = false;
|
|
3710
|
+
this.failures = 0;
|
|
3711
|
+
this.blockedUntil = 0;
|
|
3712
|
+
}
|
|
3713
|
+
}
|
|
3714
|
+
var LOOPBACK_HOSTS, CSRF_HEADER = "x-autho-csrf", REQUEST_HEADER = "x-autho-request", BASE_HEADERS;
|
|
3715
|
+
var init_security = __esm(() => {
|
|
3716
|
+
LOOPBACK_HOSTS = ["localhost", "127.0.0.1", "[::1]"];
|
|
3717
|
+
BASE_HEADERS = {
|
|
3718
|
+
"cache-control": "no-store",
|
|
3719
|
+
"cross-origin-opener-policy": "same-origin",
|
|
3720
|
+
"cross-origin-resource-policy": "same-origin",
|
|
3721
|
+
"permissions-policy": "camera=(), microphone=(), geolocation=(), payment=(), usb=(), publickey-credentials-create=(self), publickey-credentials-get=(self)",
|
|
3722
|
+
"referrer-policy": "no-referrer",
|
|
3723
|
+
"x-content-type-options": "nosniff",
|
|
3724
|
+
"x-frame-options": "DENY"
|
|
3725
|
+
};
|
|
3726
|
+
});
|
|
3727
|
+
|
|
3728
|
+
// apps/web/src/sessions.ts
|
|
3729
|
+
class SessionStore {
|
|
3730
|
+
sessions = new Map;
|
|
3731
|
+
idleMs;
|
|
3732
|
+
onAdminEnd;
|
|
3733
|
+
now;
|
|
3734
|
+
constructor(options) {
|
|
3735
|
+
this.idleMs = options.idleMs;
|
|
3736
|
+
this.onAdminEnd = options.onAdminEnd;
|
|
3737
|
+
this.now = options.now ?? (() => Date.now());
|
|
3738
|
+
}
|
|
3739
|
+
create(rootKey, sealBound) {
|
|
3740
|
+
const at = this.now();
|
|
3741
|
+
const session = {
|
|
3742
|
+
id: newToken(),
|
|
3743
|
+
csrf: newToken(),
|
|
3744
|
+
rootKey,
|
|
3745
|
+
sealBound,
|
|
3746
|
+
createdAt: at,
|
|
3747
|
+
lastSeen: at,
|
|
3748
|
+
admin: null,
|
|
3749
|
+
pendingTotp: null,
|
|
3750
|
+
pendingPasskey: null
|
|
3751
|
+
};
|
|
3752
|
+
this.sessions.set(session.id, session);
|
|
3753
|
+
return session;
|
|
3754
|
+
}
|
|
3755
|
+
touch(id, csrf) {
|
|
3756
|
+
this.sweep();
|
|
3757
|
+
if (!id)
|
|
3758
|
+
return null;
|
|
3759
|
+
const session = this.sessions.get(id);
|
|
3760
|
+
if (!session || !tokensEqual(csrf, session.csrf))
|
|
3761
|
+
return null;
|
|
3762
|
+
session.lastSeen = this.now();
|
|
3763
|
+
return session;
|
|
3764
|
+
}
|
|
3765
|
+
end(id) {
|
|
3766
|
+
if (!id)
|
|
3767
|
+
return;
|
|
3768
|
+
const session = this.sessions.get(id);
|
|
3769
|
+
if (!session)
|
|
3770
|
+
return;
|
|
3771
|
+
this.sessions.delete(id);
|
|
3772
|
+
this.dropAdmin(session);
|
|
3773
|
+
session.rootKey.fill(0);
|
|
3774
|
+
}
|
|
3775
|
+
endAll() {
|
|
3776
|
+
for (const id of [...this.sessions.keys()])
|
|
3777
|
+
this.end(id);
|
|
3778
|
+
}
|
|
3779
|
+
admin(session) {
|
|
3780
|
+
if (session.admin && session.admin.expiresAt <= this.now())
|
|
3781
|
+
this.dropAdmin(session);
|
|
3782
|
+
return session.admin?.handle ?? null;
|
|
3783
|
+
}
|
|
3784
|
+
grantAdmin(session, handle) {
|
|
3785
|
+
this.dropAdmin(session);
|
|
3786
|
+
const expiresAt = this.now() + ADMIN_TTL_MS;
|
|
3787
|
+
session.admin = { handle, expiresAt };
|
|
3788
|
+
return expiresAt;
|
|
3789
|
+
}
|
|
3790
|
+
dropAdmin(session) {
|
|
3791
|
+
if (!session.admin)
|
|
3792
|
+
return;
|
|
3793
|
+
const { handle } = session.admin;
|
|
3794
|
+
session.admin = null;
|
|
3795
|
+
session.pendingTotp = null;
|
|
3796
|
+
session.pendingPasskey = null;
|
|
3797
|
+
this.onAdminEnd(handle);
|
|
3798
|
+
}
|
|
3799
|
+
expiresAt(session) {
|
|
3800
|
+
const idle = this.idleMs();
|
|
3801
|
+
return { idleAt: idle > 0 ? session.lastSeen + idle : null, hardAt: session.createdAt + MAX_SESSION_MS };
|
|
3802
|
+
}
|
|
3803
|
+
sweep() {
|
|
3804
|
+
const at = this.now();
|
|
3805
|
+
for (const session of [...this.sessions.values()]) {
|
|
3806
|
+
const { idleAt, hardAt } = this.expiresAt(session);
|
|
3807
|
+
if (hardAt <= at || idleAt !== null && idleAt <= at)
|
|
3808
|
+
this.end(session.id);
|
|
3809
|
+
}
|
|
3810
|
+
}
|
|
3811
|
+
get size() {
|
|
3812
|
+
this.sweep();
|
|
3813
|
+
return this.sessions.size;
|
|
3814
|
+
}
|
|
3815
|
+
}
|
|
3816
|
+
var ADMIN_TTL_MS, MAX_SESSION_MS;
|
|
3817
|
+
var init_sessions = __esm(() => {
|
|
3818
|
+
init_security();
|
|
3819
|
+
ADMIN_TTL_MS = 5 * 60000;
|
|
3820
|
+
MAX_SESSION_MS = 12 * 60 * 60000;
|
|
3821
|
+
});
|
|
3822
|
+
|
|
3823
|
+
// apps/web/src/ui.generated.ts
|
|
3824
|
+
var UI_HTML = '<!doctype html>\n<html lang="en" class="dark">\n <head>\n <meta charset="utf-8" />\n <meta name="viewport" content="width=device-width, initial-scale=1" />\n <meta name="color-scheme" content="dark" />\n <meta name="referrer" content="no-referrer" />\n <title>autho</title>\n <script type="module" crossorigin>var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t,t.exports),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,o)=>(o=n==null?{}:e(i(n)),s(r||!n||!n.__esModule||!a.call(n,`default`)?t(o,`default`,{value:n,enumerable:!0}):o,n));(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var l=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.for(`react.view_transition`),m=Symbol.iterator;function h(e){return typeof e!=`object`||!e?null:(e=m&&e[m]||e[`@@iterator`],typeof e==`function`?e:null)}var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},_=Object.assign,v={};function y(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||g}y.prototype.isReactComponent={},y.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},y.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function b(){}b.prototype=y.prototype;function x(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||g}var S=x.prototype=new b;S.constructor=x,_(S,y.prototype),S.isPureReactComponent=!0;var C=Array.isArray;function w(){}var T={H:null,A:null,T:null,S:null},E=Object.prototype.hasOwnProperty;function D(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function ee(e,t){return D(e.type,t,e.props)}function O(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function te(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var k=/\\/+/g;function A(e,t){return typeof e==`object`&&e&&e.key!=null?te(``+e.key):t.toString(36)}function ne(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(w,w):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function re(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,re(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+A(e,0):a,C(o)?(i=``,c!=null&&(i=c.replace(k,`$&/`)+`/`),re(o,r,i,``,function(e){return e})):o!=null&&(O(o)&&(o=ee(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(k,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(C(e))for(var u=0;u<e.length;u++)a=e[u],s=l+A(a,u),c+=re(a,r,i,s,o);else if(u=h(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+A(a,u++),c+=re(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return re(ne(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function j(e,t,n){if(e==null)return e;var r=[],i=0;return re(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function M(e){if(e._status===-1){var t=e._result,n=t();n.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t,n.status===void 0&&(n.status=`fulfilled`,n.value=t))},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t,n.status===void 0&&(n.status=`rejected`,n.reason=t))}),e._status===-1&&(e._status=0,e._result=n)}if(e._status===1)return e._result.default;throw e._result}var ie=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)};function ae(e){var t=T.T,n={};n.types=t===null?null:t.types,T.T=n;try{var r=e(),i=T.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(w,ie)}catch(e){ie(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),T.T=t}}function oe(e){var t=T.T;if(t!==null){var n=t.types;n===null?t.types=[e]:n.indexOf(e)===-1&&n.push(e)}else ae(oe.bind(null,e))}var se={map:j,forEach:function(e,t,n){j(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return j(e,function(){t++}),t},toArray:function(e){return j(e,function(e){return e})||[]},only:function(e){if(!O(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=se,e.Component=y,e.Fragment=r,e.Profiler=a,e.PureComponent=x,e.StrictMode=i,e.Suspense=l,e.ViewTransition=p,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=T,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return T.H.useMemoCache(e)}},e.addTransitionType=oe,e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=_({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!E.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return D(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)E.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return D(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=O,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:M}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=ae,e.unstable_useCacheRefresh=function(){return T.H.useCacheRefresh()},e.use=function(e){return T.H.use(e)},e.useActionState=function(e,t,n){return T.H.useActionState(e,t,n)},e.useCallback=function(e,t){return T.H.useCallback(e,t)},e.useContext=function(e){return T.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return T.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return T.H.useEffect(e,t)},e.useEffectEvent=function(e){return T.H.useEffectEvent(e)},e.useId=function(){return T.H.useId()},e.useImperativeHandle=function(e,t,n){return T.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return T.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return T.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return T.H.useMemo(e,t)},e.useOptimistic=function(e,t){return T.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return T.H.useReducer(e,t,n)},e.useRef=function(e){return T.H.useRef(e)},e.useState=function(e){return T.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return T.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return T.H.useTransition()},e.version=`19.3.1`})),u=o(((e,t)=>{t.exports=l()})),d=o((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0<n;){var r=n-1>>>1,a=e[r];if(0<i(a,t))e[r]=t,e[n]=a,n=r;else break a}}function n(e){return e.length===0?null:e[0]}function r(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;a:for(var r=0,a=e.length,o=a>>>1;r<o;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>i(c,n))l<a&&0>i(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(l<a&&0>i(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m){if(n(c)!==null)m=!0,S||(S=!0,ee());else{var t=n(l);t!==null&&k(x,t.startTime-e)}}}var S=!1,C=-1,w=5,T=-1;function E(){return g?!0:!(e.unstable_now()-T<w)}function D(){if(g=!1,S){var t=e.unstable_now();T=t;var i=!0;try{a:{m=!1,h&&(h=!1,v(C),C=-1),p=!0;var a=f;try{b:{for(b(t),d=n(c);d!==null&&!(d.expirationTime>t&&E());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&k(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?ee():S=!1}}}var ee;if(typeof y==`function`)ee=function(){y(D)};else if(typeof MessageChannel<`u`){var O=new MessageChannel,te=O.port2;O.port1.onmessage=D,ee=function(){te.postMessage(null)}}else ee=function(){_(D,0)};function k(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error(`forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported`):w=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},e.unstable_requestPaint=function(){g=!0},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},e.unstable_scheduleCallback=function(r,i,a){var o=e.unstable_now();switch(typeof a==`object`&&a?(a=a.delay,a=typeof a==`number`&&0<a?o+a:o):a=o,r){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,r={id:u++,callback:i,priorityLevel:r,startTime:a,expirationTime:s,sortIndex:-1},a>o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,k(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,ee()))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),f=o(((e,t)=>{t.exports=d()})),p=o((e=>{var t=u();function n(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function r(){}var i={d:{f:r,r:function(){throw Error(n(522))},D:r,C:r,L:r,m:r,X:r,S:r,M:r},p:0,findDOMNode:null},a=Symbol.for(`react.portal`),o=Symbol.for(`react.recoverable`),s=Symbol.for(`react.optimistic_key`);function c(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:a,key:r==null?null:r===s?s:``+r,children:e,containerInfo:t,implementation:n}}var l=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function d(e,t){if(e===`font`)return``;if(typeof t==`string`)return t===`use-credentials`?t:``}e.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=i,e.browser=function(e){return{$$typeof:o,_reason:e}},e.createPortal=function(e,t){var r=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)throw Error(n(299));return c(e,t,null,r)},e.flushSync=function(e){var t=l.T,n=i.p;try{if(l.T=null,i.p=2,e)return e()}finally{l.T=t,i.p=n,i.d.f()}},e.preconnect=function(e,t){typeof e==`string`&&(t?(t=t.crossOrigin,t=typeof t==`string`?t===`use-credentials`?t:``:void 0):t=null,i.d.C(e,t))},e.prefetchDNS=function(e){typeof e==`string`&&i.d.D(e)},e.preinit=function(e,t){if(typeof e==`string`&&t&&typeof t.as==`string`){var n=t.as,r=d(n,t.crossOrigin),a=typeof t.integrity==`string`?t.integrity:void 0,o=typeof t.fetchPriority==`string`?t.fetchPriority:void 0;n===`style`?i.d.S(e,typeof t.precedence==`string`?t.precedence:void 0,{crossOrigin:r,integrity:a,fetchPriority:o}):n===`script`&&i.d.X(e,{crossOrigin:r,integrity:a,fetchPriority:o,nonce:typeof t.nonce==`string`?t.nonce:void 0})}},e.preinitModule=function(e,t){if(typeof e==`string`){if(typeof t==`object`&&t){if(t.as==null||t.as===`script`){var n=d(t.as,t.crossOrigin);i.d.M(e,{crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0})}}else t??i.d.M(e)}},e.preload=function(e,t){if(typeof e==`string`&&typeof t==`object`&&t&&typeof t.as==`string`){var n=t.as,r=d(n,t.crossOrigin);i.d.L(e,n,{crossOrigin:r,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,type:typeof t.type==`string`?t.type:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy==`string`?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet==`string`?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes==`string`?t.imageSizes:void 0,media:typeof t.media==`string`?t.media:void 0})}},e.preloadModule=function(e,t){if(typeof e==`string`){if(t){var n=d(t.as,t.crossOrigin);i.d.m(e,{as:typeof t.as==`string`&&t.as!==`script`?t.as:void 0,crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0})}else i.d.m(e)}},e.requestFormReset=function(e){i.d.r(e)},e.unstable_batchedUpdates=function(e,t){return e(t)},e.useFormState=function(e,t,n){return l.H.useFormState(e,t,n)},e.useFormStatus=function(){return l.H.useHostTransitionStatus()},e.version=`19.3.1`})),m=o(((e,t)=>{function n(){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE==`function`)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=p()})),h=o((e=>{var t=f(),n=u(),r=m();function i(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function a(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function o(e){for(var t=e,n=t;n&&!n.alternate;)t=n,t.flags&4098&&(e=t.return),n=t.return;for(;t.return;)t=t.return;return t.tag===3?e:null}function s(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function c(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function l(e){if(o(e)!==e)throw Error(i(188))}function d(e){var t=e.alternate;if(!t){if(t=o(e),t===null)throw Error(i(188));return t===e?e:null}for(var n=e,r=t;;){var a=n.return;if(a===null)break;var s=a.alternate;if(s===null){if(r=a.return,r!==null){n=r;continue}break}if(a.child===s.child){for(s=a.child;s;){if(s===n)return l(a),e;if(s===r)return l(a),t;s=s.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=s;else{for(var c=!1,u=a.child;u;){if(u===n){c=!0,n=a,r=s;break}if(u===r){c=!0,r=a,n=s;break}u=u.sibling}if(!c){for(u=s.child;u;){if(u===n){c=!0,n=s,r=a;break}if(u===r){c=!0,r=s,n=a;break}u=u.sibling}if(!c)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(n.tag!==3)throw Error(i(188));return n.stateNode.current===n?e:t}function p(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=p(e),t!==null)return t;e=e.sibling}return null}function h(e,t,n,r,i,a){for(;e!==null;){if((e.tag===5||e.tag===27||e.tag===6)&&n(e,r,i,a)||(e.tag!==22||e.memoizedState===null)&&(t||e.tag!==5&&e.tag!==27)&&h(e.child,t,n,r,i,a))return!0;e=e.sibling}return!1}function g(e){for(e=e.return;e!==null;){if(e.tag===3||e.tag===5||e.tag===27)return e;e=e.return}return null}function _(e){var t=!1;for(e=e.return;e!==null&&(e.tag===4&&(t=!0),e.tag!==3&&e.tag!==5&&e.tag!==27);)e=e.return;return t}function v(e){var t=[null,null],n=g(e);return n===null||y(t,e,n.child,{foundSelf:!1}),t}function y(e,t,n,r){for(;n!==null;){if(n===t)r.foundSelf=!0;else if(n.tag===5||n.tag===27||n.tag===6){if(r.foundSelf)return e[1]=n,!0;e[0]=n}else if((n.tag!==22||n.memoizedState===null)&&y(e,t,n.child,r))return!0;n=n.sibling}return!1}function b(e){switch(e.tag){case 5:case 27:case 6:return e.stateNode;case 3:return e.stateNode.containerInfo;default:throw Error(i(559))}}var x=null,S=null;function C(e,t,n){return e===n||e===t&&(x=e,!0)}function w(e,t,n){return e===n?(S=e,!1):e===t&&(S!==null&&(x=e),!0)}function T(e){if(e===null)return null;do e=e===null?null:e.return;while(e&&e.tag!==5&&e.tag!==27&&e.tag!==3);return e||null}function E(e,t,n){for(var r=0,i=e;i;i=n(i))r++;i=0;for(var a=t;a;a=n(a))i++;for(;0<r-i;)e=n(e),r--;for(;0<i-r;)t=n(t),i--;for(;r--;){if(e===t||t!==null&&e===t.alternate)return e;e=n(e),t=n(t)}return null}var D=Object.assign,ee=Symbol.for(`react.element`),O=Symbol.for(`react.transitional.element`),te=Symbol.for(`react.portal`),k=Symbol.for(`react.fragment`),A=Symbol.for(`react.strict_mode`),ne=Symbol.for(`react.profiler`),re=Symbol.for(`react.consumer`),j=Symbol.for(`react.context`),M=Symbol.for(`react.forward_ref`),ie=Symbol.for(`react.suspense`),ae=Symbol.for(`react.suspense_list`),oe=Symbol.for(`react.memo`),se=Symbol.for(`react.lazy`),ce=Symbol.for(`react.activity`),le=Symbol.for(`react.legacy_hidden`),ue=Symbol.for(`react.memo_cache_sentinel`),de=Symbol.for(`react.view_transition`),fe=Symbol.for(`react.recoverable`),pe=Symbol.iterator;function me(e){return typeof e!=`object`||!e?null:(e=pe&&e[pe]||e[`@@iterator`],typeof e==`function`?e:null)}var he=Symbol.for(`react.client.reference`);function ge(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===he?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case k:return`Fragment`;case ne:return`Profiler`;case A:return`StrictMode`;case ie:return`Suspense`;case ae:return`SuspenseList`;case ce:return`Activity`;case de:return`ViewTransition`}if(typeof e==`object`)switch(e.$$typeof){case te:return`Portal`;case j:return e.displayName||`Context`;case re:return(e._context.displayName||`Context`)+`.Consumer`;case M:var t=e.render;return e=e.displayName,e||=(e=t.displayName||t.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case oe:return t=e.displayName||null,t===null?ge(e.type)||`Memo`:t;case se:t=e._payload,e=e._init;try{return ge(e(t))}catch{}}return null}var _e=Array.isArray,N=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,P=r.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,ve={pending:!1,data:null,method:null,action:null},ye=[],be=-1;function xe(e){return{current:e}}function F(e){0>be||(e.current=ye[be],ye[be]=null,be--)}function I(e,t){be++,ye[be]=e.current,e.current=t}var Se=xe(null),Ce=xe(null),we=xe(null),Te=xe(null);function Ee(e,t){switch(I(we,t),I(Ce,e),I(Se,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?up(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=up(t),e=dp(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}F(Se),I(Se,e)}function De(){F(Se),F(Ce),F(we)}function Oe(e){var t=e.memoizedState;t!==null&&(sh._currentValue=t.memoizedState,I(Te,e)),t=Se.current;var n=dp(t,e.type);t!==n&&(I(Ce,e),I(Se,n))}function ke(e){Ce.current===e&&(F(Se),F(Ce)),Te.current===e&&(F(Te),sh._currentValue=ve)}var Ae,je;function Me(e){if(Ae===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\\n( *(at )?)/);Ae=t&&t[1]||``,je=-1<e.stack.indexOf(`\n at`)?` (<anonymous>)`:-1<e.stack.indexOf(`@`)?`@unknown:0:0`:``}return`\n`+Ae+e+je}var Ne=!1;function Pe(e,t){if(!e||Ne)return``;Ne=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(t){var n=function(){throw Error()};if(Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),typeof Reflect==`object`&&Reflect.construct){try{Reflect.construct(n,[])}catch(e){var r=e}Reflect.construct(e,[],n)}else{try{n.call()}catch(e){r=e}n=!1;try{var i=Object.getOwnPropertyDescriptor(e.prototype,`props`);Object.defineProperty(e.prototype,"props",{configurable:!0,set:function(){throw Error()}}),n=!0,new e}finally{n&&(i===void 0?delete e.prototype.props:Object.defineProperty(e.prototype,"props",i))}}}else{try{throw Error()}catch(e){r=e}(n=e())&&typeof n.catch==`function`&&n.catch(function(){})}}catch(e){if(e&&r&&typeof e.stack==`string`)return[e.stack,r.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName=`DetermineComponentFrameRoot`;var i=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,`name`);i&&i.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,"name",{value:`DetermineComponentFrameRoot`});var a=r.DetermineComponentFrameRoot(),o=a[0],s=a[1];if(o&&s){var c=o.split(`\n`),l=s.split(`\n`);for(i=r=0;r<c.length&&!c[r].includes(`DetermineComponentFrameRoot`);)r++;for(;i<l.length&&!l[i].includes(`DetermineComponentFrameRoot`);)i++;if(r===c.length||i===l.length)for(r=c.length-1,i=l.length-1;1<=r&&0<=i&&c[r]!==l[i];)i--;for(;1<=r&&0<=i;r--,i--)if(c[r]!==l[i]){if(r!==1||i!==1)do if(r--,i--,0>i||c[r]!==l[i]){var u=`\n`+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(`<anonymous>`)&&(u=u.replace(`<anonymous>`,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{Ne=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?Me(n):``}function Fe(e,t){switch(e.tag){case 26:case 27:case 5:return Me(e.type);case 16:return Me(`Lazy`);case 13:return e.child!==t&&t!==null?Me(`Suspense Fallback`):Me(`Suspense`);case 19:return Me(`SuspenseList`);case 0:case 15:return Pe(e.type,!1);case 11:return Pe(e.type.render,!1);case 1:return Pe(e.type,!0);case 31:return Me(`Activity`);case 30:return Me(`ViewTransition`);default:return``}}function L(e){try{var t=``,n=null;do t+=Fe(e,n),n=e,e=e.return;while(e);return t}catch(e){return`\nError generating stack: `+e.message+`\n`+e.stack}}var Ie=Object.prototype.hasOwnProperty,Le=t.unstable_scheduleCallback,R=t.unstable_cancelCallback,Re=t.unstable_shouldYield,ze=t.unstable_requestPaint,Be=t.unstable_now,Ve=t.unstable_getCurrentPriorityLevel,He=t.unstable_ImmediatePriority,Ue=t.unstable_UserBlockingPriority,We=t.unstable_NormalPriority,Ge=t.unstable_LowPriority,Ke=t.unstable_IdlePriority,qe=t.log,Je=t.unstable_setDisableYieldValue,Ye=null,Xe=null;function Ze(e){if(typeof qe==`function`&&Je(e),Xe&&typeof Xe.setStrictMode==`function`)try{Xe.setStrictMode(Ye,e)}catch{}}var Qe=Math.clz32?Math.clz32:tt,$e=Math.log,et=Math.LN2;function tt(e){return e>>>=0,e===0?32:31-($e(e)/et|0)|0}var nt=256,rt=262144,it=4194304;function at(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&-e;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function ot(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=at(n))):i=at(o):i=at(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=at(n))):i=at(o)):i=at(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function st(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function ct(e,t){t&8&&(t|=t&32);var n=e.entangledLanes;if(n!==0)for(e=e.entanglements,n&=t;0<n;){var r=31-Qe(n),i=1<<r;t|=e[r],n&=~i}return t}function lt(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function ut(){var e=it;return it<<=1,!(it&62914560)&&(it=4194304),e}function dt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function ft(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function pt(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0<n;){var u=31-Qe(n),d=1<<u;s[u]=0,c[u]=-1;var f=l[u];if(f!==null)for(l[u]=null,u=0;u<f.length;u++){var p=f[u];p!==null&&(p.lane&=-536870913)}n&=~d}r!==0&&mt(e,r,0),a!==0&&i===0&&e.tag!==0&&(e.suspendedLanes|=a&~(o&~t))}function mt(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-Qe(t);e.entangledLanes|=t,e.entanglements[r]=e.entanglements[r]|1073741824|n&261930}function ht(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-Qe(n),i=1<<r;i&t|e[r]&t&&(e[r]|=t),n&=~i}}function gt(e,t){var n=t&-t;return n=n&42?1:_t(n),(n&(e.suspendedLanes|t))===0?n:0}function _t(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function vt(e){return e&=-e,2<e?8<e?e&134217727?32:268435456:8:2}function yt(){var e=P.p;return e===0?(e=window.event,e===void 0?32:Ch(e.type)):e}function bt(e,t){var n=P.p;try{return P.p=e,t()}finally{P.p=n}}var xt=Math.random().toString(36).slice(2),St=`__reactFiber$`+xt,Ct=`__reactProps$`+xt,wt=`__reactContainer$`+xt,Tt=`__reactEvents$`+xt,Et=`__reactListeners$`+xt,Dt=`__reactHandles$`+xt,Ot=`__reactResources$`+xt,kt=`__reactMarker$`+xt,At=`__reactLoad$`+xt;function jt(e){delete e[St],delete e[Ct],delete e[Et],delete e[Dt]}function Mt(e){var t;if(t=e[St])return t;for(var n=e.parentNode;n;){if(t=n[wt]||n[St]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=fm(e);e!==null;){if(n=e[St])return n;e=fm(e)}return t}e=n,n=e.parentNode}return null}function Nt(e){if(e=e[St]||e[wt]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function Pt(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(i(33))}function Ft(e){var t=e[Ot];return t||=e[Ot]={hoistableStyles:new Map,hoistableScripts:new Map},t}function It(e){e[kt]=!0}function Lt(e){e[At]=void 0}var Rt=new Set,zt={};function Bt(e,t){Vt(e,t),Vt(e+`Capture`,t)}function Vt(e,t){for(zt[e]=t,e=0;e<t.length;e++)Rt.add(t[e])}var Ht=RegExp(`^[:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD][:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$`),Ut={},Wt={};function Gt(e){return Ie.call(Wt,e)?!0:Ie.call(Ut,e)?!1:Ht.test(e)?Wt[e]=!0:(Ut[e]=!0,!1)}var z=!1;function Kt(){var e=z;return z=!1,e}function qt(e,t,n){if(Gt(t)){if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:e.removeAttribute(t);return;case`boolean`:var r=t.toLowerCase().slice(0,5);if(r!==`data-`&&r!==`aria-`){e.removeAttribute(t);return}}e.setAttribute(t,n)}}}function Jt(e,t,n){if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(t);return}e.setAttribute(t,n)}}function Yt(e,t,n,r){if(r===null)e.removeAttribute(n);else{switch(typeof r){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(n);return}e.setAttributeNS(t,n,r)}}function Xt(e){switch(typeof e){case`bigint`:case`boolean`:case`number`:case`string`:case`undefined`:return e;case`object`:return e;default:return``}}function Zt(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()===`input`&&(t===`checkbox`||t===`radio`)}function Qt(e,t,n){var r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&r!==void 0&&typeof r.get==`function`&&typeof r.set==`function`){var i=r.get,a=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(e){n=``+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(e){n=``+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function $t(e){if(!e._valueTracker){var t=Zt(e)?`checked`:`value`;e._valueTracker=Qt(e,t,``+e[t])}}function en(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r=``;return e&&(r=Zt(e)?e.checked?`true`:`false`:e.value),e=r,e!==n&&(t.setValue(e),!0)}var tn=/[\\n"\\\\]/g;function nn(e){return e.replace(tn,function(e){return`\\\\`+e.charCodeAt(0).toString(16)+` `})}function rn(e,t,n,r,i,a,o,s){e.name=``,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`?e.type=o:e.removeAttribute(`type`),t==null?o!==`submit`&&o!==`reset`||e.removeAttribute(`value`):o===`number`?(t===0&&e.value===``||e.value!=t)&&(e.value=``+Xt(t)):e.value!==``+Xt(t)&&(e.value=``+Xt(t)),t==null?n==null?r!=null&&e.removeAttribute(`value`):on(e,Xt(n)):o===`number`&&e.value==t?on(e,Xt(e.value)):on(e,Xt(t)),i==null&&a!=null&&(e.defaultChecked=!!a),i!=null&&(e.checked=i&&typeof i!=`function`&&typeof i!=`symbol`),s!=null&&typeof s!=`function`&&typeof s!=`symbol`&&typeof s!=`boolean`?e.name=``+Xt(s):e.removeAttribute(`name`)}function an(e,t,n,r,i,a,o,s){if(a!=null&&typeof a!=`function`&&typeof a!=`symbol`&&typeof a!=`boolean`&&(e.type=a),t!=null||n!=null){if(!(a!==`submit`&&a!==`reset`||t!=null)){$t(e);return}n=n==null?``:``+Xt(n),t=t==null?n:``+Xt(t),s||t===e.value||(e.value=t),e.defaultValue=t}r??=i,r=typeof r!=`function`&&typeof r!=`symbol`&&!!r,e.checked=s?e.checked:!!r,e.defaultChecked=!!r,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`&&(e.name=o),$t(e)}function on(e,t){e.defaultValue!==``+t&&(e.defaultValue=``+t)}function sn(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i<n.length;i++)t[`$`+n[i]]=!0;for(n=0;n<e.length;n++)i=t.hasOwnProperty(`$`+e[n].value),e[n].selected!==i&&(e[n].selected=i),i&&r&&(e[n].defaultSelected=!0)}else{for(n=``+Xt(n),t=null,i=0;i<e.length;i++){if(e[i].value===n){e[i].selected=!0,r&&(e[i].defaultSelected=!0);return}t!==null||e[i].disabled||(t=e[i])}t!==null&&(t.selected=!0)}}function cn(e,t,n){t!=null&&(t=``+Xt(t),t!==e.value&&(e.value=t),n==null)?e.defaultValue!==t&&(e.defaultValue=t):e.defaultValue=n==null?``:``+Xt(n)}function ln(e,t,n,r){if(t==null){if(r!=null){if(n!=null)throw Error(i(92));if(_e(r)){if(1<r.length)throw Error(i(93));r=r[0]}n=r}n??=``,t=n}n=Xt(t),e.defaultValue=n,r=e.textContent,r===n&&r!==``&&r!==null&&(e.value=r),$t(e)}function un(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var dn=new Set(`animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp`.split(` `));function fn(e,t,n){var r=t.indexOf(`--`)===0;n==null||typeof n==`boolean`||n===``?r?e.setProperty(t,``):t===`float`?e.cssFloat=``:e[t]=``:r?e.setProperty(t,n):typeof n!=`number`||n===0||dn.has(t)?t===`float`?e.cssFloat=n:e[t]=(``+n).trim():e[t]=n+`px`}function pn(e,t,n){if(t!=null&&typeof t!=`object`)throw Error(i(62));if(e=e.style,n!=null){for(var r in n)!n.hasOwnProperty(r)||t!=null&&t.hasOwnProperty(r)||(r.indexOf(`--`)===0?e.setProperty(r,``):r===`float`?e.cssFloat=``:e[r]=``,z=!0);for(var a in t)r=t[a],t.hasOwnProperty(a)&&n[a]!==r&&(fn(e,a,r),z=!0)}else for(var o in t)t.hasOwnProperty(o)&&fn(e,o,t[o])}function mn(e){if(e.indexOf(`-`)===-1)return!1;switch(e){case`annotation-xml`:case`color-profile`:case`font-face`:case`font-face-src`:case`font-face-uri`:case`font-face-format`:case`font-face-name`:case`missing-glyph`:return!1;default:return!0}}var hn=new Map([[`acceptCharset`,`accept-charset`],[`htmlFor`,`for`],[`httpEquiv`,`http-equiv`],[`crossOrigin`,`crossorigin`],[`accentHeight`,`accent-height`],[`alignmentBaseline`,`alignment-baseline`],[`arabicForm`,`arabic-form`],[`baselineShift`,`baseline-shift`],[`capHeight`,`cap-height`],[`clipPath`,`clip-path`],[`clipRule`,`clip-rule`],[`colorInterpolation`,`color-interpolation`],[`colorInterpolationFilters`,`color-interpolation-filters`],[`colorProfile`,`color-profile`],[`colorRendering`,`color-rendering`],[`dominantBaseline`,`dominant-baseline`],[`enableBackground`,`enable-background`],[`fillOpacity`,`fill-opacity`],[`fillRule`,`fill-rule`],[`floodColor`,`flood-color`],[`floodOpacity`,`flood-opacity`],[`fontFamily`,`font-family`],[`fontSize`,`font-size`],[`fontSizeAdjust`,`font-size-adjust`],[`fontStretch`,`font-stretch`],[`fontStyle`,`font-style`],[`fontVariant`,`font-variant`],[`fontWeight`,`font-weight`],[`glyphName`,`glyph-name`],[`glyphOrientationHorizontal`,`glyph-orientation-horizontal`],[`glyphOrientationVertical`,`glyph-orientation-vertical`],[`horizAdvX`,`horiz-adv-x`],[`horizOriginX`,`horiz-origin-x`],[`imageRendering`,`image-rendering`],[`letterSpacing`,`letter-spacing`],[`lightingColor`,`lighting-color`],[`markerEnd`,`marker-end`],[`markerMid`,`marker-mid`],[`markerStart`,`marker-start`],[`maskType`,`mask-type`],[`overlinePosition`,`overline-position`],[`overlineThickness`,`overline-thickness`],[`paintOrder`,`paint-order`],[`panose-1`,`panose-1`],[`pointerEvents`,`pointer-events`],[`renderingIntent`,`rendering-intent`],[`shapeRendering`,`shape-rendering`],[`stopColor`,`stop-color`],[`stopOpacity`,`stop-opacity`],[`strikethroughPosition`,`strikethrough-position`],[`strikethroughThickness`,`strikethrough-thickness`],[`strokeDasharray`,`stroke-dasharray`],[`strokeDashoffset`,`stroke-dashoffset`],[`strokeLinecap`,`stroke-linecap`],[`strokeLinejoin`,`stroke-linejoin`],[`strokeMiterlimit`,`stroke-miterlimit`],[`strokeOpacity`,`stroke-opacity`],[`strokeWidth`,`stroke-width`],[`textAnchor`,`text-anchor`],[`textDecoration`,`text-decoration`],[`textRendering`,`text-rendering`],[`transformOrigin`,`transform-origin`],[`underlinePosition`,`underline-position`],[`underlineThickness`,`underline-thickness`],[`unicodeBidi`,`unicode-bidi`],[`unicodeRange`,`unicode-range`],[`unitsPerEm`,`units-per-em`],[`vAlphabetic`,`v-alphabetic`],[`vHanging`,`v-hanging`],[`vIdeographic`,`v-ideographic`],[`vMathematical`,`v-mathematical`],[`vectorEffect`,`vector-effect`],[`vertAdvY`,`vert-adv-y`],[`vertOriginX`,`vert-origin-x`],[`vertOriginY`,`vert-origin-y`],[`wordSpacing`,`word-spacing`],[`writingMode`,`writing-mode`],[`xmlnsXlink`,`xmlns:xlink`],[`xHeight`,`x-height`]]),gn=/^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*:/i;function _n(e){return gn.test(``+e)?`javascript:throw new Error(\'React has blocked a javascript: URL as a security precaution.\')`:e}function vn(){}var yn=null;function bn(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var xn=null,Sn=null;function Cn(e){var t=Nt(e);if(t&&(e=t.stateNode)){var n=e[Ct]||null;a:switch(e=t.stateNode,t.type){case`input`:if(rn(e,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name),t=n.name,n.type===`radio`&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll(`input[name="`+nn(``+t)+`"][type="radio"]`),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=r[Ct]||null;if(!a)throw Error(i(90));rn(r,a.value,a.defaultValue,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name)}}for(t=0;t<n.length;t++)r=n[t],r.form===e.form&&en(r)}break a;case`textarea`:cn(e,n.value,n.defaultValue);break a;case`select`:t=n.value,t!=null&&sn(e,!!n.multiple,t,!1)}}}var wn=!1;function Tn(e,t,n){if(wn)return e(t,n);wn=!0;try{return e(t)}finally{if(wn=!1,(xn!==null||Sn!==null)&&(Rd(),xn&&(t=xn,e=Sn,Sn=xn=null,Cn(t),e)))for(t=0;t<e.length;t++)Cn(e[t])}}function En(e,t){var n=e.stateNode;if(n===null)return null;var r=n[Ct]||null;if(r===null)return null;n=r[t];a:switch(t){case`onClick`:case`onClickCapture`:case`onDoubleClick`:case`onDoubleClickCapture`:case`onMouseDown`:case`onMouseDownCapture`:case`onMouseMove`:case`onMouseMoveCapture`:case`onMouseUp`:case`onMouseUpCapture`:case`onMouseEnter`:(r=!r.disabled)||(e=e.type,r=e!==`button`&&e!==`input`&&e!==`select`&&e!==`textarea`),e=!r;break a;default:e=!1}if(e)return null;if(n&&typeof n!=`function`)throw Error(i(231,t,typeof n));return n}var Dn=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0,On=!1;if(Dn)try{var kn={};Object.defineProperty(kn,"passive",{get:function(){On=!0}}),window.addEventListener(`test`,kn,kn),window.removeEventListener(`test`,kn,kn)}catch{On=!1}var An=null,jn=null,Mn=null;function Nn(){if(Mn)return Mn;var e,t=jn,n=t.length,r,i=`value`in An?An.value:An.textContent,a=i.length;for(e=0;e<n&&t[e]===i[e];e++);var o=n-e;for(r=1;r<=o&&t[n-r]===i[a-r];r++);return Mn=i.slice(e,1<r?1-r:void 0)}function Pn(e){var t=e.keyCode;return`charCode`in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function Fn(){return!0}function In(){return!1}function Ln(e){function t(t,n,r,i,a){for(var o in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=i,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(o)&&(t=e[o],this[o]=t?t(i):i[o]);return this.isDefaultPrevented=(i.defaultPrevented==null?!1===i.returnValue:i.defaultPrevented)?Fn:In,this.isPropagationStopped=In,this}return D(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():typeof e.returnValue!=`unknown`&&(e.returnValue=!1),this.isDefaultPrevented=Fn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():typeof e.cancelBubble!=`unknown`&&(e.cancelBubble=!0),this.isPropagationStopped=Fn)},persist:function(){},isPersistent:Fn}),t}var Rn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},zn=Ln(Rn),Bn=D({},Rn,{view:0,detail:0}),Vn=Ln(Bn),Hn,Un,Wn,Gn=D({},Bn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:nr,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return`movementX`in e?e.movementX:(e!==Wn&&(Wn&&e.type===`mousemove`?(Hn=e.screenX-Wn.screenX,Un=e.screenY-Wn.screenY):Un=Hn=0,Wn=e),Hn)},movementY:function(e){return`movementY`in e?e.movementY:Un}}),Kn=Ln(Gn),qn=Ln(D({},Gn,{dataTransfer:0})),Jn=Ln(D({},Bn,{relatedTarget:0})),Yn=Ln(D({},Rn,{animationName:0,elapsedTime:0,pseudoElement:0})),Xn=Ln(D({},Rn,{clipboardData:function(e){return`clipboardData`in e?e.clipboardData:window.clipboardData}})),Zn=Ln(D({},Rn,{data:0})),Qn={Esc:`Escape`,Spacebar:` `,Left:`ArrowLeft`,Up:`ArrowUp`,Right:`ArrowRight`,Down:`ArrowDown`,Del:`Delete`,Win:`OS`,Menu:`ContextMenu`,Apps:`ContextMenu`,Scroll:`ScrollLock`,MozPrintableKey:`Unidentified`},$n={8:`Backspace`,9:`Tab`,12:`Clear`,13:`Enter`,16:`Shift`,17:`Control`,18:`Alt`,19:`Pause`,20:`CapsLock`,27:`Escape`,32:` `,33:`PageUp`,34:`PageDown`,35:`End`,36:`Home`,37:`ArrowLeft`,38:`ArrowUp`,39:`ArrowRight`,40:`ArrowDown`,45:`Insert`,46:`Delete`,112:`F1`,113:`F2`,114:`F3`,115:`F4`,116:`F5`,117:`F6`,118:`F7`,119:`F8`,120:`F9`,121:`F10`,122:`F11`,123:`F12`,144:`NumLock`,145:`ScrollLock`,224:`Meta`},er={Alt:`altKey`,Control:`ctrlKey`,Meta:`metaKey`,Shift:`shiftKey`};function tr(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=er[e])?!!t[e]:!1}function nr(){return tr}var rr=Ln(D({},Bn,{key:function(e){if(e.key){var t=Qn[e.key]||e.key;if(t!==`Unidentified`)return t}return e.type===`keypress`?(e=Pn(e),e===13?`Enter`:String.fromCharCode(e)):e.type===`keydown`||e.type===`keyup`?$n[e.keyCode]||`Unidentified`:``},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:nr,charCode:function(e){return e.type===`keypress`?Pn(e):0},keyCode:function(e){return e.type===`keydown`||e.type===`keyup`?e.keyCode:0},which:function(e){return e.type===`keypress`?Pn(e):e.type===`keydown`||e.type===`keyup`?e.keyCode:0}})),ir=Ln(D({},Gn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),ar=Ln(D({},Rn,{submitter:0})),or=Ln(D({},Bn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:nr})),sr=Ln(D({},Rn,{propertyName:0,elapsedTime:0,pseudoElement:0})),cr=Ln(D({},Gn,{deltaX:function(e){return`deltaX`in e?e.deltaX:`wheelDeltaX`in e?-e.wheelDeltaX:0},deltaY:function(e){return`deltaY`in e?e.deltaY:`wheelDeltaY`in e?-e.wheelDeltaY:`wheelDelta`in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0})),lr=Ln(D({},Rn,{newState:0,oldState:0,source:0})),ur=[9,13,27,32],dr=Dn&&`CompositionEvent`in window,fr=null;Dn&&`documentMode`in document&&(fr=document.documentMode);var pr=Dn&&`TextEvent`in window&&!fr,mr=Dn&&(!dr||fr&&8<fr&&11>=fr),hr=` `,gr=!1;function _r(e,t){switch(e){case`keyup`:return ur.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function vr(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var yr=!1;function br(e,t){switch(e){case`compositionend`:return vr(t);case`keypress`:return t.which===32?(gr=!0,hr):null;case`textInput`:return e=t.data,e===hr&&gr?null:e;default:return null}}function xr(e,t){if(yr)return e===`compositionend`||!dr&&_r(e,t)?(e=Nn(),Mn=jn=An=null,yr=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case`compositionend`:return mr&&t.locale!==`ko`?null:t.data;default:return null}}var Sr={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Cr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t===`input`?!!Sr[e.type]:t===`textarea`}function wr(e,t,n,r){xn?Sn?Sn.push(r):Sn=[r]:xn=r,t=qf(t,`onChange`),0<t.length&&(n=new zn(`onChange`,`change`,null,n,r),e.push({event:n,listeners:t}))}var Tr=null,Er=null;function Dr(e){Bf(e,0)}function Or(e){if(en(Pt(e)))return e}function kr(e,t){if(e===`change`)return t}var Ar=!1;if(Dn){var jr;if(Dn){var Mr=`oninput`in document;if(!Mr){var Nr=document.createElement(`div`);Nr.setAttribute(`oninput`,`return;`),Mr=typeof Nr.oninput==`function`}jr=Mr}else jr=!1;Ar=jr&&(!document.documentMode||9<document.documentMode)}function Pr(){Tr&&(Tr.detachEvent(`onpropertychange`,Fr),Er=Tr=null)}function Fr(e){if(e.propertyName===`value`&&Or(Er)){var t=[];wr(t,Er,e,bn(e)),Tn(Dr,t)}}function Ir(e,t,n){e===`focusin`?(Pr(),Tr=t,Er=n,Tr.attachEvent(`onpropertychange`,Fr)):e===`focusout`&&Pr()}function Lr(e){if(e===`selectionchange`||e===`keyup`||e===`keydown`)return Or(Er)}function Rr(e,t){if(e===`click`)return Or(t)}function zr(e,t){if(e===`input`||e===`change`)return Or(t)}function Br(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var Vr=typeof Object.is==`function`?Object.is:Br;function Hr(e,t){if(Vr(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var i=n[r];if(!Ie.call(t,i)||!Vr(e[i],t[i]))return!1}return!0}function Ur(e){if(e||=typeof document<`u`?document:void 0,e===void 0)return null;try{return e.activeElement||e.body}catch{return e.body}}function Wr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Gr(e,t){var n=Wr(e);e=0;for(var r;n;){if(n.nodeType===3){if(r=e+n.textContent.length,e<=t&&r>=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=Wr(n)}}function Kr(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Kr(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function qr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Ur(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=Ur(e.document)}return t}function Jr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var Yr=Dn&&`documentMode`in document&&11>=document.documentMode,Xr=null,Zr=null,Qr=null,$r=!1;function ei(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;$r||Xr==null||Xr!==Ur(r)||(r=Xr,`selectionStart`in r&&Jr(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Qr&&Hr(Qr,r)||(Qr=r,r=qf(Zr,`onSelect`),0<r.length&&(t=new zn(`onSelect`,`select`,null,t,n),e.push({event:t,listeners:r}),t.target=Xr)))}function ti(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n[`Webkit`+e]=`webkit`+t,n[`Moz`+e]=`moz`+t,n}var ni={animationend:ti(`Animation`,`AnimationEnd`),animationiteration:ti(`Animation`,`AnimationIteration`),animationstart:ti(`Animation`,`AnimationStart`),transitionrun:ti(`Transition`,`TransitionRun`),transitionstart:ti(`Transition`,`TransitionStart`),transitioncancel:ti(`Transition`,`TransitionCancel`),transitionend:ti(`Transition`,`TransitionEnd`)},ri={},ii={};Dn&&(ii=document.createElement(`div`).style,`AnimationEvent`in window||(delete ni.animationend.animation,delete ni.animationiteration.animation,delete ni.animationstart.animation),`TransitionEvent`in window||delete ni.transitionend.transition);function ai(e){if(ri[e])return ri[e];if(!ni[e])return e;var t=ni[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in ii)return ri[e]=t[n];return e}var oi=ai(`animationend`),si=ai(`animationiteration`),ci=ai(`animationstart`),li=ai(`transitionrun`),ui=ai(`transitionstart`),di=ai(`transitioncancel`),fi=ai(`transitionend`),pi=new Map,mi=`abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error fullscreenChange fullscreenError gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel`.split(` `);mi.push(`scrollEnd`);function hi(e,t){pi.set(e,t),Bt(t,[e])}var gi=0;function _i(e,t){if(e.name!=null&&e.name!==`auto`)return e.name;if(t.autoName!==null)return t.autoName;e=yd.identifierPrefix;var n=gi++;return e=`_`+e+`t_`+n.toString(32)+`_`,t.autoName=e}function vi(e){if(e==null||typeof e==`string`)return e;var t=null,n=Dd;if(n!==null)for(var r=0;r<n.length;r++){var i=e[n[r]];if(i!=null){if(i===`none`)return`none`;t=t==null?i:t+(` `+i)}}return t??e.default}function yi(e,t){return e=vi(e),t=vi(t),t==null?e===`auto`?null:e:t===`auto`?null:t}var bi=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},xi=[],Si=0,Ci=0;function wi(){for(var e=Si,t=Ci=Si=0;t<e;){var n=xi[t];xi[t++]=null;var r=xi[t];xi[t++]=null;var i=xi[t];xi[t++]=null;var a=xi[t];if(xi[t++]=null,r!==null&&i!==null){var o=r.pending;o===null?i.next=i:(i.next=o.next,o.next=i),r.pending=i}a!==0&&Oi(n,i,a)}}function Ti(e,t,n,r){xi[Si++]=e,xi[Si++]=t,xi[Si++]=n,xi[Si++]=r,Ci|=r,e.lanes|=r,e=e.alternate,e!==null&&(e.lanes|=r)}function Ei(e,t,n,r){return Ti(e,t,n,r),ki(e)}function Di(e,t){return Ti(e,null,null,t),ki(e)}function Oi(e,t,n){e.lanes|=n;var r=e.alternate;r!==null&&(r.lanes|=n);for(var i=!1,a=e.return;a!==null;)a.childLanes|=n,r=a.alternate,r!==null&&(r.childLanes|=n),a.tag===22&&(e=a.stateNode,e===null||e._visibility&1||(i=!0)),e=a,a=a.return;return e.tag===3?(a=e.stateNode,i&&t!==null&&(i=31-Qe(n),e=a.hiddenUpdates,r=e[i],r===null?e[i]=[t]:r.push(t),t.lane=n|536870912),a):null}function ki(e){if(50<Od)throw Od=0,kd=null,Error(i(185));for(var t=e.return;t!==null;)e=t,t=e.return;return e.tag===3?e.stateNode:null}var Ai={};function ji(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Mi(e,t,n,r){return new ji(e,t,n,r)}function Ni(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Pi(e,t){var n=e.alternate;return n===null?(n=Mi(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&1206910976,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n.refCleanup=e.refCleanup,n}function Fi(e,t){e.flags&=1206910978;var n=e.alternate;return n===null?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,t=n.dependencies,e.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function Ii(e,t,n,r,a,o){var s=0;if(r=e,typeof r==`function`)Ni(r)&&(s=1);else if(typeof r==`string`)s=qm(e,n,Se.current)?26:e===`html`||e===`head`||e===`body`?27:5;else a:switch(r){case ce:return e=Mi(31,n,t,a),e.elementType=ce,e.lanes=o,e;case k:return Li(n.children,a,o,t);case A:s=8,a|=24;break;case ne:return e=Mi(12,n,t,a|2),e.elementType=ne,e.lanes=o,e;case ie:return e=Mi(13,n,t,a),e.elementType=ie,e.lanes=o,e;case ae:return e=Mi(19,n,t,a),e.elementType=ae,e.lanes=o,e;case le:case de:return e=a|32,e=Mi(30,n,t,e),e.elementType=de,e.lanes=o,e.stateNode={autoName:null,paired:null,clones:null,ref:null},e;default:if(typeof r==`object`&&r)switch(r.$$typeof){case j:s=10;break a;case re:s=9;break a;case M:s=11;break a;case oe:s=14;break a;case se:s=16,r=null;break a}s=29,n=Error(i(130,e===null?`null`:typeof e,``)),r=null}return t=Mi(s,n,t,a),t.elementType=e,t.type=r,t.lanes=o,t}function Li(e,t,n,r){return e=Mi(7,e,r,t),e.lanes=n,e}function Ri(e,t,n){return e=Mi(6,e,null,t),e.lanes=n,e}function zi(e){var t=Mi(18,null,null,0);return t.stateNode=e,t}function Bi(e,t,n){return t=Mi(4,e.children===null?[]:e.children,e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var Vi=new WeakMap;function Hi(e,t){if(typeof e==`object`&&e){var n=Vi.get(e);return n===void 0?(t={value:e,source:t,stack:L(t)},Vi.set(e,t),t):n}return{value:e,source:t,stack:L(t)}}var Ui=[],Wi=0,Gi=null,Ki=0,qi=[],Ji=0,Yi=null,Xi=1,Zi=``;function Qi(e,t){Ui[Wi++]=Ki,Ui[Wi++]=Gi,Gi=e,Ki=t}function $i(e,t,n){qi[Ji++]=Xi,qi[Ji++]=Zi,qi[Ji++]=Yi,Yi=e;var r=Xi;e=Zi;var i=32-Qe(r)-1;r&=~(1<<i),n+=1;var a=32-Qe(t)+i;if(30<a){var o=i-i%5;a=(r&(1<<o)-1).toString(32),r>>=o,i-=o,Xi=1<<32-Qe(t)+i|n<<i|r,Zi=a+e}else Xi=1<<a|n<<i|r,Zi=e}function ea(e){e.return!==null&&(Qi(e,1),$i(e,1,0))}function ta(e){for(;e===Gi;)Gi=Ui[--Wi],Ui[Wi]=null,Ki=Ui[--Wi],Ui[Wi]=null;for(;e===Yi;)Yi=qi[--Ji],qi[Ji]=null,Zi=qi[--Ji],qi[Ji]=null,Xi=qi[--Ji],qi[Ji]=null}function na(e,t){qi[Ji++]=Xi,qi[Ji++]=Zi,qi[Ji++]=Yi,Xi=t.id,Zi=t.overflow,Yi=e}var ra=null,ia=null,B=!1,aa=null,oa=!1,sa=Error(i(519));function ca(e){throw ma(Hi(Error(i(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?`text`:`HTML`,``)),e)),sa}function la(e){var t=e.stateNode,n=e.type,r=e.memoizedProps;switch(t[St]=e,t[Ct]=r,n){case`dialog`:$(`cancel`,t),$(`close`,t);break;case`iframe`:case`object`:case`embed`:$(`load`,t);break;case`video`:case`audio`:for(n=0;n<Rf.length;n++)$(Rf[n],t);break;case`source`:$(`error`,t);break;case`img`:case`image`:case`link`:$(`error`,t),$(`load`,t);break;case`details`:$(`toggle`,t);break;case`input`:$(`invalid`,t),an(t,r.value,r.defaultValue,r.checked,r.defaultChecked,r.type,r.name,!0);break;case`select`:$(`invalid`,t);break;case`textarea`:$(`invalid`,t),ln(t,r.value,r.defaultValue,r.children)}n=r.children,typeof n!=`string`&&typeof n!=`number`&&typeof n!=`bigint`||t.textContent===``+n||!0===r.suppressHydrationWarning||$f(t.textContent,n)?(r.popover!=null&&($(`beforetoggle`,t),$(`toggle`,t)),r.onScroll!=null&&$(`scroll`,t),r.onScrollEnd!=null&&$(`scrollend`,t),r.onClick!=null&&(t.onclick=vn),t=!0):t=!1,t||ca(e,!0)}function ua(e){for(ra=e.return;ra;)switch(ra.tag){case 5:case 31:case 13:oa=!1;return;case 27:case 3:oa=!0;return;default:ra=ra.return}}function da(e){if(e!==ra)return!1;if(!B)return ua(e),B=!0,!1;var t=e.tag,n;if((n=t!==3&&t!==27)&&((n=t===5)&&(n=e.type,n=n===`form`||n===`button`||pp(e.type,e.memoizedProps)),n=!n),n&&ia&&ca(e),ua(e),t===13){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(317));ia=dm(e)}else if(t===31){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(317));ia=dm(e)}else t===27?(t=ia,Sp(e.type)?(e=um,um=null,ia=e):ia=t):ia=ra?lm(e.stateNode.nextSibling):null;return!0}function fa(){ia=ra=null,B=!1}function pa(){var e=aa;return e!==null&&(dd===null?dd=e:dd.push.apply(dd,e),aa=null),e}function ma(e){aa===null?aa=[e]:aa.push(e)}var ha=xe(null),ga=null,_a=null;function va(e,t,n){I(ha,t._currentValue),t._currentValue=n}function ya(e){e._currentValue=ha.current,F(ha)}function ba(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)===t?r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t):(e.childLanes|=t,r!==null&&(r.childLanes|=t)),e===n)break;e=e.return}}function xa(e,t,n,r){var a=e.child;for(a!==null&&(a.return=e);a!==null;){var o=a.dependencies;if(o!==null){var s=a.child;o=o.firstContext;a:for(;o!==null;){var c=o;o=a;for(var l=0;l<t.length;l++)if(c.context===t[l]){o.lanes|=n,c=o.alternate,c!==null&&(c.lanes|=n),ba(o.return,n,e),r||(s=null);break a}o=c.next}}else if(a.tag===18){if(s=a.return,s===null)throw Error(i(341));s.lanes|=n,o=s.alternate,o!==null&&(o.lanes|=n),ba(s,n,e),s=null}else a.tag===13&&a.memoizedState!==null&&a.memoizedState.dehydrated===null?(a.lanes|=n,s=a.alternate,s!==null&&(s.lanes|=n),ba(a.return,n,e),s=a.child,s=s===null?null:s.sibling):s=a.child;if(s!==null)s.return=a;else for(s=a;s!==null;){if(s===e){s=null;break}if(a=s.sibling,a!==null){a.return=s.return,s=a;break}s=s.return}a=s}}function Sa(e,t,n,r){e=null;for(var a=t,o=!1;a!==null;){if(!o){if(a.flags&524288)o=!0;else if(a.flags&262144)break}if(a.tag===10){var s=a.alternate;if(s===null)throw Error(i(387));if(s=s.memoizedProps,s!==null){var c=a.type;Vr(a.pendingProps.value,s.value)||(e===null?e=[c]:e.push(c))}}else if(a===Te.current){if(s=a.alternate,s===null)throw Error(i(387));s.memoizedState.memoizedState!==a.memoizedState.memoizedState&&(e===null?e=[sh]:e.push(sh))}a=a.return}return e!==null&&xa(t,e,n,r),t.flags|=262144,e!==null}function Ca(e){for(e=e.firstContext;e!==null;){if(!Vr(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function wa(e){ga=e,_a=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function Ta(e){return Da(ga,e)}function Ea(e,t){return ga===null&&wa(e),Da(e,t)}function Da(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},_a===null){if(e===null)throw Error(i(308));_a=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else _a=_a.next=t;return n}var Oa=typeof AbortController<`u`?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(t,n){e.push(n)}};this.abort=function(){t.aborted=!0,e.forEach(function(e){return e()})}},ka=t.unstable_scheduleCallback,Aa=t.unstable_NormalPriority,ja={$$typeof:j,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function Ma(){return{controller:new Oa,data:new Map,refCount:0}}function Na(e){e.refCount--,e.refCount===0&&ka(Aa,function(){e.controller.abort()})}function Pa(e,t){if(e.pendingLanes&4194048){var n=e.transitionTypes;for(n===null&&(n=e.transitionTypes=[]),e=0;e<t.length;e++){var r=t[e];n.indexOf(r)===-1&&n.push(r)}}}var Fa=null;function Ia(e){var t=e.transitionTypes;return e.transitionTypes=null,t}var La=null,Ra=0,za=0,Ba=null;function Va(e,t){if(La===null){var n=La=[];Ra=0,za=Nf(),Ba={status:`pending`,value:void 0,then:function(e){n.push(e)}}}return Ra++,t.then(Ha,Ha),t}function Ha(){if(--Ra===0&&(Fa=null,La!==null)){Ba!==null&&(Ba.status=`fulfilled`);var e=La;La=null,za=0,Ba=null;for(var t=0;t<e.length;t++)(0,e[t])()}}function Ua(e,t){var n=[],r={status:`pending`,value:null,reason:null,then:function(e){n.push(e)}};return e.then(function(){r.status=`fulfilled`,r.value=t;for(var e=0;e<n.length;e++)(0,n[e])(t)},function(e){for(r.status=`rejected`,r.reason=e,e=0;e<n.length;e++)(0,n[e])(void 0)}),r}var Wa=N.S;N.S=function(e,t){if(md=Be(),typeof t==`object`&&t&&typeof t.then==`function`&&Va(e,t),Fa!==null)for(var n=bf;n!==null;)Pa(n,Fa),n=n.next;if(n=e.types,n!==null){for(var r=bf;r!==null;)Pa(r,n),r=r.next;if(za!==0){r=Fa,r===null&&(r=Fa=[]);for(var i=0;i<n.length;i++){var a=n[i];r.indexOf(a)===-1&&r.push(a)}}}Wa!==null&&Wa(e,t)};var Ga=xe(null);function Ka(){var e=Ga.current;return e===null?ed.pooledCache:e}function qa(e,t){t===null?I(Ga,Ga.current):I(Ga,t.pool)}function Ja(){var e=Ka();return e===null?null:{parent:ja._currentValue,pool:e}}var Ya=Error(i(460)),Xa=Error(i(474)),Za=Error(i(542)),Qa={then:function(){}};function $a(e){return e=e.status,e===`fulfilled`||e===`rejected`}function eo(e,t,n){switch(n=e[n],n===void 0?e.push(t):n!==t&&(t.then(vn,vn),t=n),t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,io(e),e===void 0&&!(`reason`in t)?Error(i(600)):e;default:if(typeof t.status==`string`)t.then(vn,vn);else{if(e=ed,e!==null&&100<e.shellSuspendCounter)throw Error(i(482));e=t,e.status=`pending`,e.then(function(e){if(t.status===`pending`){var n=t;n.status=`fulfilled`,n.value=e}},function(e){if(t.status===`pending`){var n=t;n.status=`rejected`,n.reason=e}})}switch(t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,io(e),e}throw no=t,Ya}}function to(e){try{var t=e._init;return t(e._payload)}catch(e){throw typeof e==`object`&&e&&typeof e.then==`function`?(no=e,Ya):e}}var no=null;function ro(){if(no===null)throw Error(i(459));var e=no;return no=null,e}function io(e){if(e===Ya||e===Za)throw Error(i(483))}var ao=null,oo=0;function so(e){var t=oo;return oo+=1,ao===null&&(ao=[]),eo(ao,e,t)}function co(e,t){t=t.props.ref,e.ref=t===void 0?null:t}function lo(e,t){throw t.$$typeof===ee?Error(i(525)):(e=Object.prototype.toString.call(t),Error(i(31,e===`[object Object]`?`object with keys {`+Object.keys(t).join(`, `)+`}`:e)))}function uo(e){function t(t,n){if(e){var r=t.deletions;r===null?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;r!==null;)t(n,r),r=r.sibling;return null}function r(e){for(var t=new Map;e!==null;)e.key===null?t.set(e.index,e):t.set(e.key,e),e=e.sibling;return t}function a(e,t){return e=Pi(e,t),e.index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?(r=t.alternate,r===null?(t.flags|=134217730,n):(r=r.index,r<n?(t.flags|=2,n):r)):(t.flags|=1048576,n)}function s(t){return e&&t.alternate===null&&(t.flags|=134217730),t}function c(e,t,n,r){return t===null||t.tag!==6?(t=Ri(n,e.mode,r),t.return=e,t):(t=a(t,n),t.return=e,t)}function l(e,t,n,r){var i=n.type;return i===k?(e=d(e,t,n.props.children,r,n.key),co(e,n),e):t!==null&&(t.elementType===i||typeof i==`object`&&i&&i.$$typeof===se&&to(i)===t.type)?(t=a(t,n.props),co(t,n),t.return=e,t):(t=Ii(n.type,n.key,n.props,null,e.mode,r),co(t,n),t.return=e,t)}function u(e,t,n,r){return t===null||t.tag!==4||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?(t=Bi(n,e.mode,r),t.return=e,t):(t=a(t,n.children||[]),t.return=e,t)}function d(e,t,n,r,i){return t===null||t.tag!==7?(t=Li(n,e.mode,r,i),t.return=e,t):(t=a(t,n),t.return=e,t)}function f(e,t,n){if(typeof t==`string`&&t!==``||typeof t==`number`||typeof t==`bigint`)return t=Ri(``+t,e.mode,n),t.return=e,t;if(typeof t==`object`&&t){switch(t.$$typeof){case O:return n=Ii(t.type,t.key,t.props,null,e.mode,n),co(n,t),n.return=e,n;case te:return t=Bi(t,e.mode,n),t.return=e,t;case se:return t=to(t),f(e,t,n)}if(_e(t)||me(t))return t=Li(t,e.mode,n,null),t.return=e,t;if(typeof t.then==`function`)return f(e,so(t),n);if(t.$$typeof===j)return f(e,Ea(e,t),n);lo(e,t)}return null}function p(e,t,n,r){var i=t===null?null:t.key;if(typeof n==`string`&&n!==``||typeof n==`number`||typeof n==`bigint`)return i===null?c(e,t,``+n,r):null;if(typeof n==`object`&&n){switch(n.$$typeof){case O:return n.key===i?l(e,t,n,r):null;case te:return n.key===i?u(e,t,n,r):null;case se:return n=to(n),p(e,t,n,r)}if(_e(n)||me(n))return i===null?d(e,t,n,r,null):null;if(typeof n.then==`function`)return p(e,t,so(n),r);if(n.$$typeof===j)return p(e,t,Ea(e,n),r);lo(e,n)}return null}function m(e,t,n,r,i){if(typeof r==`string`&&r!==``||typeof r==`number`||typeof r==`bigint`)return e=e.get(n)||null,c(t,e,``+r,i);if(typeof r==`object`&&r){switch(r.$$typeof){case O:return e=e.get(r.key===null?n:r.key)||null,l(t,e,r,i);case te:return e=e.get(r.key===null?n:r.key)||null,u(t,e,r,i);case se:return r=to(r),m(e,t,n,r,i)}if(_e(r)||me(r))return e=e.get(n)||null,d(t,e,r,i,null);if(typeof r.then==`function`)return m(e,t,n,so(r),i);if(r.$$typeof===j)return m(e,t,n,Ea(t,r),i);lo(t,r)}return null}function h(i,a,s,c){for(var l=null,u=null,d=a,h=a=0,g=null;d!==null&&h<s.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),a=o(_,a,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),B&&Qi(i,h),l;if(d===null){for(;h<s.length;h++)d=f(i,s[h],c),d!==null&&(a=o(d,a,h),u===null?l=d:u.sibling=d,u=d);return B&&Qi(i,h),l}for(d=r(d);h<s.length;h++)g=m(d,i,h,s[h],c),g!==null&&(e&&(_=g.alternate,_!==null&&d.delete(_.key===null?h:_.key)),a=o(g,a,h),u===null?l=g:u.sibling=g,u=g);return e&&d.forEach(function(e){return t(i,e)}),B&&Qi(i,h),l}function g(a,s,c,l){if(c==null)throw Error(i(151));for(var u=null,d=null,h=s,g=s=0,_=null,v=c.next();h!==null&&!v.done;g++,v=c.next()){h.index>g?(_=h,h=null):_=h.sibling;var y=p(a,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(a,h),s=o(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(a,h),B&&Qi(a,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(a,v.value,l),v!==null&&(s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return B&&Qi(a,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,a,g,v.value,l),v!==null&&(e&&(_=v.alternate,_!==null&&h.delete(_.key===null?g:_.key)),s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(a,e)}),B&&Qi(a,g),u}function _(e,r,o,c){if(typeof o==`object`&&o&&o.type===k&&o.key===null&&o.props.ref===void 0&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case O:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===k){if(r.tag===7){n(e,r.sibling),c=a(r,o.props.children),co(c,o),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===se&&to(l)===r.type){n(e,r.sibling),c=a(r,o.props),co(c,o),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}o.type===k?(c=Li(o.props.children,e.mode,c,o.key),co(c,o),c.return=e,e=c):(c=Ii(o.type,o.key,o.props,null,e.mode,c),co(c,o),c.return=e,e=c)}return s(e);case te:a:{for(l=o.key;r!==null;){if(r.key===l){if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=a(r,o.children||[]),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}c=Bi(o,e.mode,c),c.return=e,e=c}return s(e);case se:return o=to(o),_(e,r,o,c)}if(_e(o))return h(e,r,o,c);if(me(o)){if(l=me(o),typeof l!=`function`)throw Error(i(150));return o=l.call(o),g(e,r,o,c)}if(typeof o.then==`function`)return _(e,r,so(o),c);if(o.$$typeof===j)return _(e,r,Ea(e,o),c);lo(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=a(r,o),c.return=e,e=c):(n(e,r),c=Ri(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{oo=0;var i=_(e,t,n,r);return ao=null,i}catch(t){if(t===Ya||t===Za)throw t;var a=Mi(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var fo=uo(!0),po=uo(!1),mo=!1;function ho(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function go(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function _o(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function vo(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,K&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=ki(e),Oi(e,null,n),t}return Ti(e,r,t,n),ki(e)}function yo(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,ht(e,n)}}function bo(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n}else e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var xo=!1;function So(){if(xo){var e=Ba;if(e!==null)throw e}}function Co(e,t,n,r){xo=!1;var i=e.updateQueue;mo=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,p=f!==s.lane;if(p?(J&f)===f:(r&f)===f){f!==0&&f===za&&(xo=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var m=e,h=s;f=t;var g=n;switch(h.tag){case 1:if(m=h.payload,typeof m==`function`){d=m.call(g,d,f);break a}d=m;break a;case 3:m.flags=m.flags&-65537|128;case 0:if(m=h.payload,f=typeof m==`function`?m.call(g,d,f):m,f==null)break a;d=D({},d,f);break a;case 2:mo=!0}}f=s.callback,f!==null&&(e.flags|=64,p&&(e.flags|=8192),p=i.callbacks,p===null?i.callbacks=[f]:p.push(f))}else p={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=p,c=d):u=u.next=p,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),ad|=o,e.lanes=o,e.memoizedState=d}}function wo(e,t){if(typeof e!=`function`)throw Error(i(191,e));e.call(t)}function To(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;e<n.length;e++)wo(n[e],t)}var Eo=xe(null),Do=xe(0);function Oo(e,t){e=rd,I(Do,e),I(Eo,t),rd=e|t.baseLanes}function ko(){I(Do,rd),I(Eo,Eo.current)}function Ao(){rd=Do.current,F(Eo),F(Do)}var jo=xe(null),Mo=null;function No(e){var t=e.alternate;I(Ro,Ro.current&1),I(jo,e),Mo===null&&(t===null||Eo.current!==null||t.memoizedState!==null)&&(Mo=e)}function Po(e){I(Ro,Ro.current),I(jo,e),Mo===null&&(Mo=e)}function Fo(e){e.tag===22?(I(Ro,Ro.current),I(jo,e),Mo===null&&(Mo=e)):Io()}function Io(){I(Ro,Ro.current),I(jo,jo.current)}function Lo(e){F(jo),Mo===e&&(Mo=null),F(Ro)}var Ro=xe(0);function zo(e,t){I(jo,jo.current),I(Ro,t)}function Bo(e){F(Ro),F(jo),Mo===e&&(Mo=null)}function Vo(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||om(n)||sm(n)))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==`independent`){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Ho=0,V=null,Uo=null,Wo=null,Go=!1,Ko=!1,qo=!1,Jo=0,Yo=0,Xo=null,Zo=0;function Qo(){throw Error(i(321))}function $o(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!Vr(e[n],t[n]))return!1;return!0}function es(e,t,n,r,i,a){return Ho=a,V=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,N.H=e===null||e.memoizedState===null?_c:vc,qo=!1,a=n(r,i),qo=!1,Ko&&(a=ns(t,n,r,i)),ts(e),a}function ts(e){N.H=gc;var t=Uo!==null&&Uo.next!==null;if(Ho=0,Wo=Uo=V=null,Go=!1,Yo=0,Xo=null,t)throw Error(i(300));e===null||Fc||(e=e.dependencies,e!==null&&Ca(e)&&(Fc=!0))}function ns(e,t,n,r){V=e;var a=0;do{if(Ko&&(Xo=null),Yo=0,Ko=!1,25<=a)throw Error(i(301));if(a+=1,Wo=Uo=null,e.updateQueue!=null){var o=e.updateQueue;o.lastEffect=null,o.events=null,o.stores=null,o.memoCache!=null&&(o.memoCache.index=0)}N.H=yc,o=t(n,r)}while(Ko);return o}function rs(){var e=N.H,t=e.useState()[0];return t=typeof t.then==`function`?us(t):t,e=e.useState()[0],(Uo===null?null:Uo.memoizedState)!==e&&(V.flags|=1024),t}function is(){var e=Jo!==0;return Jo=0,e}function as(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function os(e){if(Go){for(e=e.memoizedState;e!==null;){var t=e.queue;t!==null&&(t.pending=null),e=e.next}Go=!1}Ho=0,Wo=Uo=V=null,Ko=!1,Yo=Jo=0,Xo=null}function ss(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Wo===null?V.memoizedState=Wo=e:Wo=Wo.next=e,Wo}function cs(){if(Uo===null){var e=V.alternate;e=e===null?null:e.memoizedState}else e=Uo.next;var t=Wo===null?V.memoizedState:Wo.next;if(t!==null)Wo=t,Uo=e;else{if(e===null)throw V.alternate===null?Error(i(467)):Error(i(310));Uo=e,e={memoizedState:Uo.memoizedState,baseState:Uo.baseState,baseQueue:Uo.baseQueue,queue:Uo.queue,next:null},Wo===null?V.memoizedState=Wo=e:Wo=Wo.next=e}return Wo}function ls(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function us(e){var t=Yo;return Yo+=1,Xo===null&&(Xo=[]),e=eo(Xo,e,t),t=V,(Wo===null?t.memoizedState:Wo.next)===null&&(t=t.alternate,N.H=t===null||t.memoizedState===null?_c:vc),e}function ds(e){if(typeof e==`object`&&e){if(typeof e.then==`function`)return us(e);if(e.$$typeof===fe)return;if(e.$$typeof===j)return Ta(e)}throw Error(i(438,String(e)))}function fs(e){var t=null,n=V.updateQueue;if(n!==null&&(t=n.memoCache),t==null){var r=V.alternate;r!==null&&(r=r.updateQueue,r!==null&&(r=r.memoCache,r!=null&&(t={data:r.data.map(function(e){return e.slice()}),index:0})))}if(t??={data:[],index:0},n===null&&(n=ls(),V.updateQueue=n),n.memoCache=t,n=t.data[t.index],n===void 0)for(n=t.data[t.index]=Array(e),r=0;r<e;r++)n[r]=ue;return t.index++,n}function ps(e,t){return typeof t==`function`?t(e):t}function ms(e){return hs(cs(),Uo,e)}function hs(e,t,n){var r=e.queue;if(r===null)throw Error(i(311));r.lastRenderedReducer=n;var a=e.baseQueue,o=r.pending;if(o!==null){if(a!==null){var s=a.next;a.next=o.next,o.next=s}t.baseQueue=a=o,r.pending=null}if(o=e.baseState,a===null)e.memoizedState=o;else{t=a.next;var c=s=null,l=null,u=t,d=!1;do{var f=u.lane&-536870913;if(f===u.lane?(Ho&f)===f:(J&f)===f){var p=u.revertLane;if(p===0)l!==null&&(l=l.next={lane:0,revertLane:0,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),f===za&&(d=!0);else if((Ho&p)===p){u=u.next,p===za&&(d=!0);continue}else f={lane:0,revertLane:u.revertLane,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},l===null?(c=l=f,s=o):l=l.next=f,V.lanes|=p,ad|=p;f=u.action,qo&&n(o,f),o=u.hasEagerState?u.eagerState:n(o,f)}else p={lane:f,revertLane:u.revertLane,gesture:u.gesture,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},l===null?(c=l=p,s=o):l=l.next=p,V.lanes|=f,ad|=f;u=u.next}while(u!==null&&u!==t);if(l===null?s=o:l.next=c,!Vr(o,e.memoizedState)&&(Fc=!0,d&&(n=Ba,n!==null)))throw n;e.memoizedState=o,e.baseState=s,e.baseQueue=l,r.lastRenderedState=o}return a===null&&(r.lanes=0),[e.memoizedState,r.dispatch]}function gs(e){var t=cs(),n=t.queue;if(n===null)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(a!==null){n.pending=null;var s=a=a.next;do o=e(o,s.action),s=s.next;while(s!==a);Vr(o,t.memoizedState)||(Fc=!0),t.memoizedState=o,t.baseQueue===null&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function _s(e,t,n){var r=V,a=cs(),o=B;if(o){if(n===void 0)throw Error(i(407));n=n()}else n=t();var s=!Vr((Uo||a).memoizedState,n);if(s&&(a.memoizedState=n,Fc=!0),a=a.queue,Hs(bs.bind(null,r,a,e),[e]),e=a.getSnapshot!==t||s||Wo!==null&&!!(Wo.memoizedState.tag&1),Ls(e?9:8,{destroy:void 0},ys.bind(null,r,a,n,t),null),e){if(r.flags|=2048,ed===null)throw Error(i(349));o||Ho&127||vs(r,t,n)}return n}function vs(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=V.updateQueue,t===null?(t=ls(),V.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function ys(e,t,n,r){t.value=n,t.getSnapshot=r,xs(t)&&Ss(e)}function bs(e,t,n){return n(function(){xs(t)&&Ss(e)})}function xs(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Vr(e,n)}catch{return!0}}function Ss(e){var t=Di(e,2);t!==null&&Nd(t,e,2)}function Cs(e){var t=ss();if(typeof e==`function`){var n=e;if(e=n(),qo){Ze(!0);try{n()}finally{Ze(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:ps,lastRenderedState:e},t}function ws(e,t,n,r){return e.baseState=n,hs(e,Uo,typeof r==`function`?r:ps)}function Ts(e,t,n,r,a){if(pc(e))throw Error(i(485));if(e=t.action,e!==null){var o={payload:a,action:e,next:null,isTransition:!0,status:`pending`,value:null,reason:null,listeners:[],then:function(e){o.listeners.push(e)}};N.T===null?o.isTransition=!1:n(!0),r(o),n=t.pending,n===null?(o.next=t.pending=o,Es(t,o)):(o.next=n.next,t.pending=n.next=o)}}function Es(e,t){var n=t.action,r=t.payload,i=e.state;if(t.isTransition){var a=N.T,o={};o.types=a===null?null:a.types,N.T=o;try{var s=n(i,r),c=N.S;c!==null&&c(o,s),Ds(e,t,s)}catch(n){ks(e,t,n)}finally{a!==null&&o.types!==null&&(a.types=o.types),N.T=a}}else try{a=n(i,r),Ds(e,t,a)}catch(n){ks(e,t,n)}}function Ds(e,t,n){typeof n==`object`&&n&&typeof n.then==`function`?n.then(function(n){Os(e,t,n)},function(n){return ks(e,t,n)}):Os(e,t,n)}function Os(e,t,n){t.status=`fulfilled`,t.value=n,As(t),e.state=n,t=e.pending,t!==null&&(n=t.next,n===t?e.pending=null:(n=n.next,t.next=n,Es(e,n)))}function ks(e,t,n){var r=e.pending;if(e.pending=null,r!==null){r=r.next;do t.status=`rejected`,t.reason=n,As(t),t=t.next;while(t!==r)}e.action=null}function As(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function js(e,t){return t}function Ms(e,t){if(B){var n=ed.formState;if(n!==null){a:{var r=V;if(B){if(ia){b:{for(var i=ia,a=oa;i.nodeType!==8;)if(!a||(i=lm(i.nextSibling),i===null)){i=null;break b}a=i.data,i=a===`F!`||a===`F`?i:null}if(i){ia=lm(i.nextSibling),r=i.data===`F!`;break a}}ca(r)}r=!1}r&&(t=n[0])}}return n=ss(),n.memoizedState=n.baseState=t,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:js,lastRenderedState:t},n.queue=r,n=uc.bind(null,V,r),r.dispatch=n,r=Cs(!1),a=fc.bind(null,V,!1,r.queue),r=ss(),i={state:t,dispatch:null,action:e,pending:null},r.queue=i,n=Ts.bind(null,V,i,a,n),i.dispatch=n,r.memoizedState=e,[t,n,!1]}function Ns(e){return Ps(cs(),Uo,e)}function Ps(e,t,n){if(t=hs(e,t,js)[0],e=ms(ps)[0],typeof t==`object`&&t&&typeof t.then==`function`)try{var r=us(t)}catch(e){throw e===Ya?Za:e}else r=t;t=cs();var i=t.queue,a=i.dispatch;return n!==t.memoizedState&&(V.flags|=2048,Ls(9,{destroy:void 0},Fs.bind(null,i,n),null)),[r,a,e]}function Fs(e,t){e.action=t}function Is(e){var t=cs(),n=Uo;if(n!==null)return Ps(t,n,e);cs(),t=t.memoizedState,n=cs();var r=n.queue.dispatch;return n.memoizedState=e,[t,r,!1]}function Ls(e,t,n,r){return e={tag:e,create:n,deps:r,inst:t,next:null},t=V.updateQueue,t===null&&(t=ls(),V.updateQueue=t),n=t.lastEffect,n===null?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function Rs(){return cs().memoizedState}function zs(e,t,n,r){var i=ss();V.flags|=e,i.memoizedState=Ls(1|t,{destroy:void 0},n,r===void 0?null:r)}function Bs(e,t,n,r){var i=cs();r=r===void 0?null:r;var a=i.memoizedState.inst;Uo!==null&&r!==null&&$o(r,Uo.memoizedState.deps)?i.memoizedState=Ls(t,a,n,r):(V.flags|=e,i.memoizedState=Ls(1|t,a,n,r))}function Vs(e,t){zs(8390656,8,e,t)}function Hs(e,t){Bs(2048,8,e,t)}function Us(e){V.flags|=4;var t=V.updateQueue;if(t===null)t=ls(),V.updateQueue=t,t.events=[e];else{var n=t.events;n===null?t.events=[e]:n.push(e)}}function Ws(e){var t=cs().memoizedState;return Us({ref:t,nextImpl:e}),function(){if(K&2)throw Error(i(440));return t.impl.apply(void 0,arguments)}}function Gs(e,t){return Bs(4,2,e,t)}function Ks(e,t){return Bs(4,4,e,t)}function qs(e,t){if(typeof t==`function`){e=e();var n=t(e);return function(){typeof n==`function`?n():t(null)}}if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function Js(e,t,n){n=n==null?null:n.concat([e]),Bs(4,4,qs.bind(null,t,e),n)}function Ys(){}function Xs(e,t){var n=cs();t=t===void 0?null:t;var r=n.memoizedState;return t!==null&&$o(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Zs(e,t){var n=cs();t=t===void 0?null:t;var r=n.memoizedState;if(t!==null&&$o(t,r[1]))return r[0];if(r=e(),qo){Ze(!0);try{e()}finally{Ze(!1)}}return n.memoizedState=[r,t],r}function Qs(e,t,n){return n===void 0||Ho&1073741824&&!(J&261930)?e.memoizedState=t:(e.memoizedState=n,e=jd(),V.lanes|=e,ad|=e,n)}function $s(e,t,n,r){return Vr(n,t)?n:Eo.current===null?!(Ho&106)||Ho&1073741824&&!(J&261930)?(Fc=!0,e.memoizedState=n):(e=jd(),V.lanes|=e,ad|=e,t):(e=Qs(e,n,r),Vr(e,t)||(Fc=!0),e)}function ec(e,t,n,r,i){var a=P.p;P.p=a!==0&&8>a?a:8;var o=N.T,s={};s.types=o===null?null:o.types,N.T=s,fc(e,!1,t,n);try{var c=i(),l=N.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?dc(e,t,Ua(c,r),Ad(e)):dc(e,t,r,Ad(e))}catch(n){dc(e,t,{then:function(){},status:`rejected`,reason:n},Ad())}finally{P.p=a,o!==null&&s.types!==null&&(o.types=s.types),N.T=o}}function tc(){}function nc(e,t,n,r){if(e.tag!==5)throw Error(i(476));var a=rc(e).queue;ec(e,a,t,ve,n===null?tc:function(){return ic(e),n(r)})}function rc(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:ve,baseState:ve,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ps,lastRenderedState:ve},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ps,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function ic(e){var t=rc(e);t.next===null&&(t=e.alternate.memoizedState),dc(e,t.next.queue,{},Ad())}function ac(){return Ta(sh)}function oc(){return cs().memoizedState}function sc(){return cs().memoizedState}function cc(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=Ad();e=_o(n);var r=vo(t,e,n);r!==null&&(Nd(r,t,n),yo(r,t,n)),t={cache:Ma()},e.payload=t;return}t=t.return}}function lc(e,t,n){var r=Ad();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},pc(e)?mc(t,n):(n=Ei(e,t,n,r),n!==null&&(Nd(n,e,r),hc(n,t,r)))}function uc(e,t,n){dc(e,t,n,Ad())}function dc(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(pc(e))mc(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,Vr(s,o))return Ti(e,t,i,0),ed===null&&wi(),!1}catch{}if(n=Ei(e,t,i,r),n!==null)return Nd(n,e,r),hc(n,t,r),!0}return!1}function fc(e,t,n,r){if(r={lane:2,revertLane:Nf(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},pc(e)){if(t)throw Error(i(479))}else t=Ei(e,n,r,2),t!==null&&Nd(t,e,2)}function pc(e){var t=e.alternate;return e===V||t!==null&&t===V}function mc(e,t){Ko=Go=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function hc(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,ht(e,n)}}var gc={readContext:Ta,use:ds,useCallback:Qo,useContext:Qo,useEffect:Qo,useImperativeHandle:Qo,useLayoutEffect:Qo,useInsertionEffect:Qo,useMemo:Qo,useReducer:Qo,useRef:Qo,useState:Qo,useDebugValue:Qo,useDeferredValue:Qo,useTransition:Qo,useSyncExternalStore:Qo,useId:Qo,useHostTransitionStatus:Qo,useFormState:Qo,useActionState:Qo,useOptimistic:Qo,useMemoCache:Qo,useCacheRefresh:Qo,useEffectEvent:Qo},_c={readContext:Ta,use:ds,useCallback:function(e,t){return ss().memoizedState=[e,t===void 0?null:t],e},useContext:Ta,useEffect:Vs,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),zs(4194308,4,qs.bind(null,t,e),n)},useLayoutEffect:function(e,t){return zs(4194308,4,e,t)},useInsertionEffect:function(e,t){zs(4,2,e,t)},useMemo:function(e,t){var n=ss();t=t===void 0?null:t;var r=e();if(qo){Ze(!0);try{e()}finally{Ze(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=ss();if(n!==void 0){var i=n(t);if(qo){Ze(!0);try{n(t)}finally{Ze(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=lc.bind(null,V,e),[r.memoizedState,e]},useRef:function(e){var t=ss();return e={current:e},t.memoizedState=e},useState:function(e){e=Cs(e);var t=e.queue,n=uc.bind(null,V,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:Ys,useDeferredValue:function(e,t){return Qs(ss(),e,t)},useTransition:function(){var e=Cs(!1);return e=ec.bind(null,V,e.queue,!0,!1),ss().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=V,a=ss();if(B){if(n===void 0)throw Error(i(407));n=n()}else{if(n=t(),ed===null)throw Error(i(349));J&127||vs(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,Vs(bs.bind(null,r,o,e),[e]),r.flags|=2048,Ls(9,{destroy:void 0},ys.bind(null,r,o,n,t),null),n},useId:function(){var e=ss(),t=ed.identifierPrefix;if(B){var n=Zi,r=Xi;n=(r&~(1<<32-Qe(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=Jo++,0<n&&(t+=`H`+n.toString(32)),t+=`_`}else n=Zo++,t=`_`+t+`r_`+n.toString(32)+`_`;return e.memoizedState=t},useHostTransitionStatus:ac,useFormState:Ms,useActionState:Ms,useOptimistic:function(e){var t=ss();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=fc.bind(null,V,!0,n),n.dispatch=t,[e,t]},useMemoCache:fs,useCacheRefresh:function(){return ss().memoizedState=cc.bind(null,V)},useEffectEvent:function(e){var t=ss(),n={impl:e};return t.memoizedState=n,function(){if(K&2)throw Error(i(440));return n.impl.apply(void 0,arguments)}}},vc={readContext:Ta,use:ds,useCallback:Xs,useContext:Ta,useEffect:Hs,useImperativeHandle:Js,useInsertionEffect:Gs,useLayoutEffect:Ks,useMemo:Zs,useReducer:ms,useRef:Rs,useState:function(){return ms(ps)},useDebugValue:Ys,useDeferredValue:function(e,t){return $s(cs(),Uo.memoizedState,e,t)},useTransition:function(){var e=ms(ps)[0],t=cs().memoizedState;return[typeof e==`boolean`?e:us(e),t]},useSyncExternalStore:_s,useId:oc,useHostTransitionStatus:ac,useFormState:Ns,useActionState:Ns,useOptimistic:function(e,t){return ws(cs(),Uo,e,t)},useMemoCache:fs,useCacheRefresh:sc,useEffectEvent:Ws},yc={readContext:Ta,use:ds,useCallback:Xs,useContext:Ta,useEffect:Hs,useImperativeHandle:Js,useInsertionEffect:Gs,useLayoutEffect:Ks,useMemo:Zs,useReducer:gs,useRef:Rs,useState:function(){return gs(ps)},useDebugValue:Ys,useDeferredValue:function(e,t){var n=cs();return Uo===null?Qs(n,e,t):$s(n,Uo.memoizedState,e,t)},useTransition:function(){var e=gs(ps)[0],t=cs().memoizedState;return[typeof e==`boolean`?e:us(e),t]},useSyncExternalStore:_s,useId:oc,useHostTransitionStatus:ac,useFormState:Is,useActionState:Is,useOptimistic:function(e,t){var n=cs();return Uo===null?(n.baseState=e,[e,n.queue.dispatch]):ws(n,Uo,e,t)},useMemoCache:fs,useCacheRefresh:sc,useEffectEvent:Ws};function bc(e,t,n,r){t=e.memoizedState,n=n(r,t),n=n==null?t:D({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var xc={enqueueSetState:function(e,t,n){e=e._reactInternals;var r=Ad(),i=_o(r);i.payload=t,n!=null&&(i.callback=n),t=vo(e,i,r),t!==null&&(Nd(t,e,r),yo(t,e,r))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=Ad(),i=_o(r);i.tag=1,i.payload=t,n!=null&&(i.callback=n),t=vo(e,i,r),t!==null&&(Nd(t,e,r),yo(t,e,r))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=Ad(),r=_o(n);r.tag=2,t!=null&&(r.callback=t),t=vo(e,r,n),t!==null&&(Nd(t,e,n),yo(t,e,n))}};function Sc(e,t,n,r,i,a,o){return e=e.stateNode,typeof e.shouldComponentUpdate==`function`?e.shouldComponentUpdate(r,a,o):t.prototype&&t.prototype.isPureReactComponent?!Hr(n,r)||!Hr(i,a):!0}function Cc(e,t,n,r){e=t.state,typeof t.componentWillReceiveProps==`function`&&t.componentWillReceiveProps(n,r),typeof t.UNSAFE_componentWillReceiveProps==`function`&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&xc.enqueueReplaceState(t,t.state,null)}function wc(e,t){var n=t;if(`ref`in t)for(var r in n={},t)r!==`ref`&&(n[r]=t[r]);if(e=e.defaultProps)for(var i in n===t&&(n=D({},n)),e)n[i]===void 0&&(n[i]=e[i]);return n}function Tc(e){bi(e)}function Ec(e){console.error(e)}function Dc(e){bi(e)}function Oc(e,t){try{var n=e.onUncaughtError;n(t.value,{componentStack:t.stack})}catch(e){setTimeout(function(){throw e})}}function kc(e,t,n){try{var r=e.onCaughtError;r(n.value,{componentStack:n.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(e){setTimeout(function(){throw e})}}function Ac(e,t,n){return n=_o(n),n.tag=3,n.payload={element:null},n.callback=function(){Oc(e,t)},n}function jc(e){return e=_o(e),e.tag=3,e}function Mc(e,t,n,r){var i=n.type.getDerivedStateFromError;if(typeof i==`function`){var a=r.value;e.payload=function(){return i(a)},e.callback=function(){kc(t,n,r)}}var o=n.stateNode;o!==null&&typeof o.componentDidCatch==`function`&&(e.callback=function(){kc(t,n,r),typeof i!=`function`&&(_d===null?_d=new Set([this]):_d.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:e===null?``:e})})}function Nc(e,t,n,r,a){if(n.flags|=32768,typeof r==`object`&&r&&typeof r.then==`function`){if(t=n.alternate,t!==null&&Sa(t,n,a,!0),n=jo.current,n!==null){switch(n.tag){case 31:case 13:case 19:return Mo===null?Gd():n.alternate===null&&id===0&&(id=3),n.flags&=-257,n.flags|=65536,n.lanes=a,r===Qa?n.flags|=16384:(t=n.updateQueue,t===null?n.updateQueue=new Set([r]):t.add(r),mf(e,r,a)),!1;case 22:return n.flags|=65536,r===Qa?n.flags|=16384:(t=n.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([r])},n.updateQueue=t):(n=t.retryQueue,n===null?t.retryQueue=new Set([r]):n.add(r)),mf(e,r,a)),!1}throw Error(i(435,n.tag))}return mf(e,r,a),Gd(),!1}if(B)return t=jo.current,t===null?(r!==sa&&(t=Error(i(423),{cause:r}),ma(Hi(t,n))),e=e.current.alternate,e.flags|=65536,a&=-a,e.lanes|=a,r=Hi(r,n),a=Ac(e.stateNode,r,a),bo(e,a),id!==4&&(id=2)):(!(t.flags&65536)&&(t.flags|=256),t.flags|=65536,t.lanes=a,r!==sa&&(e=Error(i(422),{cause:r}),ma(Hi(e,n)))),!1;var o=Error(i(520),{cause:r});if(o=Hi(o,n),ud===null?ud=[o]:ud.push(o),id!==4&&(id=2),t===null)return!0;r=Hi(r,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=a&-a,n.lanes|=e,e=Ac(n.stateNode,r,e),bo(n,e),!1;case 1:if(t=n.type,o=n.stateNode,!(n.flags&128)&&(typeof t.getDerivedStateFromError==`function`||o!==null&&typeof o.componentDidCatch==`function`&&(_d===null||!_d.has(o))))return n.flags|=65536,a&=-a,n.lanes|=a,a=jc(a),Mc(a,e,n,r),bo(n,a),!1;break;case 22:if(n.memoizedState!==null)return n.flags|=65536,!1}n=n.return}while(n!==null);return!1}var Pc=Error(i(461)),Fc=!1;function Ic(e,t,n,r){t.child=e===null?po(t,null,n,r):fo(t,e.child,n,r)}function Lc(e,t,n,r,i){n=n.render;var a=t.ref;if(`ref`in r){var o={};for(var s in r)s!==`ref`&&(o[s]=r[s])}else o=r;return wa(t),r=es(e,t,n,o,a,i),s=is(),e!==null&&!Fc?(as(e,t,i),dl(e,t,i)):(B&&s&&ea(t),t.flags|=1,Ic(e,t,r,i),t.child)}function Rc(e,t,n,r,i){if(e===null){var a=n.type;return typeof a==`function`&&!Ni(a)&&a.defaultProps===void 0&&n.compare===null?(t.tag=15,t.type=a,zc(e,t,a,r,i)):(e=Ii(n.type,null,r,t,t.mode,i),e.ref=t.ref,e.return=t,t.child=e)}if(a=e.child,!fl(e,i)){var o=a.memoizedProps;if(n=n.compare,n=n===null?Hr:n,n(o,r)&&e.ref===t.ref)return dl(e,t,i)}return t.flags|=1,e=Pi(a,r),e.ref=t.ref,e.return=t,t.child=e}function zc(e,t,n,r,i){if(e!==null){var a=e.memoizedProps;if(Hr(a,r)&&e.ref===t.ref){if(Fc=!1,t.pendingProps=r=a,fl(e,i))e.flags&131072&&(Fc=!0);else return t.lanes=e.lanes,dl(e,t,i)}}return qc(e,t,n,r,i)}function Bc(e,t,n,r){var i=r.children,a=e===null?null:e.memoizedState;if(e===null&&t.stateNode===null&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),r.mode===`hidden`){if(t.flags&128){if(a=a===null?n:a.baseLanes|n,e!==null){for(r=t.child=e.child,i=0;r!==null;)i=i|r.lanes|r.childLanes,r=r.sibling;r=i&~a}else r=0,t.child=null;return Hc(e,t,a,n,r)}if(n&536870912)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&qa(t,a===null?null:a.cachePool),a===null?ko():Oo(t,a),Fo(t);else return r=t.lanes=536870912,Hc(e,t,a===null?n:a.baseLanes|n,n,r)}else a===null?(e!==null&&qa(t,null),ko(),Io()):(qa(t,a.cachePool),Oo(t,a),Io(),t.memoizedState=null);return Ic(e,t,i,n),t.child}function Vc(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function Hc(e,t,n,r,i){var a=Ka();return a=a===null?null:{parent:ja._currentValue,pool:a},t.memoizedState={baseLanes:n,cachePool:a},e!==null&&qa(t,null),ko(),Fo(t),e!==null&&Sa(e,t,r,!0),t.childLanes=i,null}function Uc(e,t){return t=nl({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function Wc(e,t,n){return fo(t,e.child,null,n),e=Uc(t,t.pendingProps),e.flags|=2,Lo(t),t.memoizedState=null,e}function Gc(e,t,n){var r=t.pendingProps,a=!!(t.flags&128);if(t.flags&=-129,e===null){if(B){if(r.mode===`hidden`)return e=Uc(t,r),t.lanes=536870912,e.memoizedState={baseLanes:0,cachePool:null},Vc(null,e);if(Po(t),(e=ia)?(e=am(e,oa),e=e!==null&&e.data===`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:Yi===null?null:{id:Xi,overflow:Zi},retryLane:536870912,hydrationErrors:null},n=zi(e),n.return=t,t.child=n,ra=t,ia=null)):e=null,e===null)throw ca(t);return t.lanes=536870912,null}return Uc(t,r)}var o=e.memoizedState;if(o!==null){var s=o.dehydrated;if(Po(t),a){if(t.flags&256)t.flags&=-257,t=Wc(e,t,n);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(i(558))}else if(Fc||Sa(e,t,n,!1),a=(n&e.childLanes)!==0,Fc||a){if(Eo.current===null){if(r=ed,r!==null&&(s=gt(r,n),s!==0&&s!==o.retryLane))throw o.retryLane=s,Di(e,s),Nd(r,e,s),Pc;Gd()}t=Wc(e,t,n)}else e=o.treeContext,ia=lm(s.nextSibling),ra=t,B=!0,aa=null,oa=!1,e!==null&&na(t,e),t=Uc(t,r),t.flags|=134221824;return t}return e=Pi(e.child,{mode:r.mode,children:r.children}),e.ref=t.ref,t.child=e,e.return=t,e}function Kc(e,t){var n=t.ref;if(n===null)e!==null&&e.ref!==null&&(t.flags|=4194816);else{if(typeof n!=`function`&&typeof n!=`object`)throw Error(i(284));(e===null||e.ref!==n)&&(t.flags|=4194816)}}function qc(e,t,n,r,i){return wa(t),n=es(e,t,n,r,void 0,i),r=is(),e!==null&&!Fc?(as(e,t,i),dl(e,t,i)):(B&&r&&ea(t),t.flags|=1,Ic(e,t,n,i),t.child)}function Jc(e,t,n,r,i,a){return wa(t),t.updateQueue=null,n=ns(t,r,n,i),ts(e),r=is(),e!==null&&!Fc?(as(e,t,a),dl(e,t,a)):(B&&r&&ea(t),t.flags|=1,Ic(e,t,n,a),t.child)}function Yc(e,t,n,r,i){if(wa(t),t.stateNode===null){var a=Ai,o=n.contextType;typeof o==`object`&&o&&(a=Ta(o)),a=new n(r,a),t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,a.updater=xc,t.stateNode=a,a._reactInternals=t,a=t.stateNode,a.props=r,a.state=t.memoizedState,a.refs={},ho(t),o=n.contextType,a.context=typeof o==`object`&&o?Ta(o):Ai,a.state=t.memoizedState,o=n.getDerivedStateFromProps,typeof o==`function`&&(bc(t,n,o,r),a.state=t.memoizedState),typeof n.getDerivedStateFromProps==`function`||typeof a.getSnapshotBeforeUpdate==`function`||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(o=a.state,typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount(),o!==a.state&&xc.enqueueReplaceState(a,a.state,null),Co(t,r,a,i),So(),a.state=t.memoizedState),typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!0}else if(e===null){a=t.stateNode;var s=t.memoizedProps,c=wc(n,s);a.props=c;var l=a.context,u=n.contextType;o=Ai,typeof u==`object`&&u&&(o=Ta(u));var d=n.getDerivedStateFromProps;u=typeof d==`function`||typeof a.getSnapshotBeforeUpdate==`function`,s=t.pendingProps!==s,u||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(s||l!==o)&&Cc(t,a,r,o),mo=!1;var f=t.memoizedState;a.state=f,Co(t,r,a,i),So(),l=t.memoizedState,s||f!==l||mo?(typeof d==`function`&&(bc(t,n,d,r),l=t.memoizedState),(c=mo||Sc(t,n,c,r,f,l,o))?(u||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount()),typeof a.componentDidMount==`function`&&(t.flags|=4194308)):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),a.props=r,a.state=l,a.context=o,r=c):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!1)}else{a=t.stateNode,go(e,t),o=t.memoizedProps,u=wc(n,o),a.props=u,d=t.pendingProps,f=a.context,l=n.contextType,c=Ai,typeof l==`object`&&l&&(c=Ta(l)),s=n.getDerivedStateFromProps,(l=typeof s==`function`||typeof a.getSnapshotBeforeUpdate==`function`)||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(o!==d||f!==c)&&Cc(t,a,r,c),mo=!1,f=t.memoizedState,a.state=f,Co(t,r,a,i),So();var p=t.memoizedState;o!==d||f!==p||mo||e!==null&&e.dependencies!==null&&Ca(e.dependencies)?(typeof s==`function`&&(bc(t,n,s,r),p=t.memoizedState),(u=mo||Sc(t,n,u,r,f,p,c)||e!==null&&e.dependencies!==null&&Ca(e.dependencies))?(l||typeof a.UNSAFE_componentWillUpdate!=`function`&&typeof a.componentWillUpdate!=`function`||(typeof a.componentWillUpdate==`function`&&a.componentWillUpdate(r,p,c),typeof a.UNSAFE_componentWillUpdate==`function`&&a.UNSAFE_componentWillUpdate(r,p,c)),typeof a.componentDidUpdate==`function`&&(t.flags|=4),typeof a.getSnapshotBeforeUpdate==`function`&&(t.flags|=1024)):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=p),a.props=r,a.state=p,a.context=c,r=u):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),r=!1)}return a=r,Kc(e,t),r=!!(t.flags&128),a||r?(a=t.stateNode,n=r&&typeof n.getDerivedStateFromError!=`function`?null:a.render(),t.flags|=1,e!==null&&r?(t.child=fo(t,e.child,null,i),t.child=fo(t,null,n,i)):Ic(e,t,n,i),t.memoizedState=a.state,e=t.child):e=dl(e,t,i),e}function Xc(e,t,n,r){return fa(),t.flags|=256,Ic(e,t,n,r),t.child}var Zc={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Qc(e){return{baseLanes:e,cachePool:Ja()}}function $c(e,t,n){return e=e===null?0:e.childLanes&~n,t&&(e|=cd),e}function el(e,t,n){var r=t.pendingProps,i=!1,a=!!(t.flags&128),o;if((o=a)||(o=e!==null&&e.memoizedState===null?!1:!!(Ro.current&2)),o&&(i=!0,t.flags&=-129),o=!!(t.flags&32),t.flags&=-33,e===null){if(B){if(i?No(t):Io(),(e=ia)?(e=am(e,oa),e=e!==null&&e.data!==`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:Yi===null?null:{id:Xi,overflow:Zi},retryLane:536870912,hydrationErrors:null},n=zi(e),n.return=t,t.child=n,ra=t,ia=null)):e=null,e===null)throw ca(t);return t.lanes=sm(e)?32:536870912,null}return a=r.children,r=r.fallback,i?(Io(),i=t.mode,a=nl({mode:`hidden`,children:a},i),r=Li(r,i,n,null),a.return=t,r.return=t,a.sibling=r,t.child=a,r=t.child,r.memoizedState=Qc(n),r.childLanes=$c(e,o,n),t.memoizedState=Zc,Vc(null,r)):(No(t),tl(t,a))}var s=e.memoizedState;if(s!==null){var c=s.dehydrated;if(c!==null)return il(e,t,a,o,r,c,s,n)}return i?(Io(),i=r.fallback,a=t.mode,s=e.child,c=s.sibling,r=Pi(s,{mode:`hidden`,children:r.children}),r.subtreeFlags=s.subtreeFlags&1206910976,c===null?(i=Li(i,a,n,null),i.flags|=2):i=Pi(c,i),i.return=t,r.return=t,r.sibling=i,t.child=r,Vc(null,r),r=t.child,i=e.child.memoizedState,i===null?i=Qc(n):(a=i.cachePool,a===null?a=Ja():(s=ja._currentValue,a=a.parent===s?a:{parent:s,pool:s}),i={baseLanes:i.baseLanes|n,cachePool:a}),r.memoizedState=i,r.childLanes=$c(e,o,n),t.memoizedState=Zc,Vc(e.child,r)):(No(t),n=e.child,e=n.sibling,n=Pi(n,{mode:`visible`,children:r.children}),n.return=t,n.sibling=null,e!==null&&(o=t.deletions,o===null?(t.deletions=[e],t.flags|=16):o.push(e)),t.child=n,t.memoizedState=null,n)}function tl(e,t){return t=nl({mode:`visible`,children:t},e.mode),t.return=e,e.child=t}function nl(e,t){return e=Mi(22,e,null,t),e.lanes=0,e}function rl(e,t,n){return fo(t,e.child,null,n),e=tl(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function il(e,t,n,r,a,o,s,c){if(n)return t.flags&256?(No(t),t.flags&=-257,rl(e,t,c)):t.memoizedState===null?(Io(),o=a.fallback,s=t.mode,a=nl({mode:`visible`,children:a.children},s),o=Li(o,s,c,null),o.flags|=2,a.return=t,o.return=t,a.sibling=o,t.child=a,fo(t,e.child,null,c),a=t.child,a.memoizedState=Qc(c),a.childLanes=$c(e,r,c),t.memoizedState=Zc,Vc(null,a)):(Io(),t.child=e.child,t.flags|=128,null);if(No(t),sm(o)){if(r=o.nextSibling&&o.nextSibling.dataset,r)var l=r.dgst;return r=l,r!==``&&(a=Error(i(419)),a.stack=``,a.digest=r,ma({value:a,source:null,stack:null})),rl(e,t,c)}if(Fc||Sa(e,t,c,!1),r=(c&e.childLanes)!==0,Fc||r){if(Eo.current!==null)return rl(e,t,c);if(r=ed,r!==null&&(a=gt(r,c),a!==0&&a!==s.retryLane))throw s.retryLane=a,Di(e,a),Nd(r,e,a),Pc;return om(o)||Gd(),rl(e,t,c)}return om(o)?(t.flags|=192,t.child=e.child,null):(e=s.treeContext,ia=lm(o.nextSibling),ra=t,B=!0,aa=null,oa=!1,e!==null&&na(t,e),t=tl(t,a.children),t.flags|=134221824,t)}function al(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),ba(e.return,t,n)}function ol(e){for(var t=null;e!==null;){var n=e.alternate;n!==null&&Vo(n)===null&&(t=e),e=e.sibling}return t}function sl(e,t,n,r,i,a){var o=e.memoizedState;o===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:i,treeForkCount:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=i,o.treeForkCount=a)}function cl(e){var t=e.child;for(e.child=null;t!==null;){var n=t.sibling;t.sibling=e.child,e.child=t,t=n}}function ll(e,t,n){var r=t.pendingProps,i=r.revealOrder,a=r.tail;r=r.children;var o=Ro.current;if(t.flags&128)return zo(t,o),null;var s=!!(o&2);if(s?(o=o&1|2,t.flags|=128):o&=1,zo(t,o),i===`backwards`&&e!==null?(cl(e),Ic(e,t,r,n),cl(e)):Ic(e,t,r,n),r=B?Ki:0,!s&&e!==null&&e.flags&128)a:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&al(e,n,t);else if(e.tag===19)al(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break a;for(;e.sibling===null;){if(e.return===null||e.return===t)break a;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(i){case`backwards`:n=ol(t.child),n===null?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null,cl(t)),sl(t,!0,i,null,a,r);break;case`unstable_legacy-backwards`:for(n=null,i=t.child,t.child=null;i!==null;){if(e=i.alternate,e!==null&&Vo(e)===null){t.child=i;break}e=i.sibling,i.sibling=n,n=i,i=e}sl(t,!0,n,null,a,r);break;case`together`:sl(t,!1,null,null,void 0,r);break;case`independent`:t.memoizedState=null;break;default:n=ol(t.child),n===null?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null),sl(t,!1,i,n,a,r)}return t.child}function ul(e,t,n){var r=t.pendingProps;return va(t,t.type,r.value),Ic(e,t,r.children,n),t.child}function dl(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),ad|=t.lanes,(n&t.childLanes)===0){if(e!==null){if(Sa(e,t,n,!1),(n&t.childLanes)===0)return null}else return null}if(e!==null&&t.child!==e.child)throw Error(i(153));if(t.child!==null){for(e=t.child,n=Pi(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=Pi(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function fl(e,t){return(e.lanes&t)!==0||(e=e.dependencies,!!(e!==null&&Ca(e)))}function pl(e,t,n){switch(t.tag){case 3:Ee(t,t.stateNode.containerInfo),va(t,ja,e.memoizedState.cache),fa();break;case 27:case 5:Oe(t);break;case 4:Ee(t,t.stateNode.containerInfo);break;case 10:va(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,Po(t),null;break;case 13:var r=t.memoizedState;if(r!==null){if(r.dehydrated!==null)return No(t),t.flags|=128,null;r=Sa(e,t,n,!1);var i=t.child.childLanes;return r||(n&i)!==0?el(e,t,n):(No(t),e=dl(e,t,n),e===null?null:e.sibling)}No(t);break;case 19:if(t.flags&128)return ll(e,t,n);if(i=!!(e.flags&128),r=(n&t.childLanes)!==0,r||=(Sa(e,t,n,!1),(n&t.childLanes)!==0),i){if(r)return ll(e,t,n);t.flags|=128}if(i=t.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),zo(t,Ro.current),r)break;return null;case 22:return t.lanes=0,Bc(e,t,n,t.pendingProps);case 24:va(t,ja,e.memoizedState.cache)}return dl(e,t,n)}function ml(e,t,n){if(e!==null){if(e.memoizedProps!==t.pendingProps)Fc=!0;else{if(!fl(e,n)&&!(t.flags&128))return Fc=!1,pl(e,t,n);Fc=!!(e.flags&131072)}}else Fc=!1,B&&t.flags&1048576&&$i(t,Ki,t.index);switch(t.lanes=0,t.tag){case 16:a:{var r=t.pendingProps;if(e=to(t.elementType),t.type=e,typeof e==`function`)Ni(e)?(r=wc(e,r),t.tag=1,t=Yc(null,t,e,r,n)):(t.tag=0,t=qc(null,t,e,r,n));else{if(e!=null){var a=e.$$typeof;if(a===M){t.tag=11,t=Lc(null,t,e,r,n);break a}if(a===oe){t.tag=14,t=Rc(null,t,e,r,n);break a}if(a===j){t.tag=10,t.type=e,t=ul(null,t,n);break a}}throw t=ge(e)||e,Error(i(306,t,``))}}return t;case 0:return qc(e,t,t.type,t.pendingProps,n);case 1:return r=t.type,a=wc(r,t.pendingProps),Yc(e,t,r,a,n);case 3:a:{if(Ee(t,t.stateNode.containerInfo),e===null)throw Error(i(387));r=t.pendingProps;var o=t.memoizedState;a=o.element,go(e,t),Co(t,r,null,n);var s=t.memoizedState;if(r=s.cache,va(t,ja,r),r!==o.cache&&xa(t,[ja],n,!0),So(),r=s.element,o.isDehydrated){if(o={element:r,isDehydrated:!1,cache:s.cache},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){t=Xc(e,t,r,n);break a}if(r!==a){a=Hi(Error(i(424)),t),ma(a),t=Xc(e,t,r,n);break a}switch(e=t.stateNode.containerInfo,e.nodeType){case 9:e=e.body;break;default:e=e.nodeName===`HTML`?e.ownerDocument.body:e}for(ia=lm(e.firstChild),ra=t,B=!0,aa=null,oa=!0,n=po(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|134221824,n=n.sibling}else{if(fa(),r===a){t=dl(e,t,n);break a}Ic(e,t,r,n)}t=t.child}return t;case 26:return Kc(e,t),e===null?(n=Nm(t.type,null,t.pendingProps,null))?t.memoizedState=n:B||(t.stateNode=fp(t.type,t.pendingProps,we.current,t)):t.memoizedState=Nm(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return Oe(t),e===null&&B&&(r=t.stateNode=hm(t.type,t.pendingProps,we.current),ra=t,oa=!0,a=ia,Sp(t.type)?(um=a,ia=lm(r.firstChild)):ia=a),Ic(e,t,t.pendingProps.children,n),Kc(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&B&&((a=r=ia)&&(r=rm(r,t.type,t.pendingProps,oa),r===null?a=!1:(t.stateNode=r,ra=t,ia=lm(r.firstChild),oa=!1,a=!0)),a||ca(t)),Oe(t),a=t.type,o=t.pendingProps,s=e===null?null:e.memoizedProps,r=o.children,pp(a,o)?r=null:s!==null&&pp(a,s)&&(t.flags|=32),t.memoizedState!==null&&(a=es(e,t,rs,null,null,n),sh._currentValue=a),Kc(e,t),Ic(e,t,r,n),t.child;case 6:return e===null&&B&&((e=n=ia)&&(n=im(n,t.pendingProps,oa),n===null?e=!1:(t.stateNode=n,ra=t,ia=null,e=!0)),e||ca(t)),null;case 13:return el(e,t,n);case 4:return Ee(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=fo(t,null,r,n):Ic(e,t,r,n),t.child;case 11:return Lc(e,t,t.type,t.pendingProps,n);case 7:return r=t.pendingProps,Kc(e,t),Ic(e,t,r,n),t.child;case 8:return Ic(e,t,t.pendingProps.children,n),t.child;case 12:return Ic(e,t,t.pendingProps.children,n),t.child;case 10:return ul(e,t,n);case 9:return a=t.type._context,r=t.pendingProps.children,wa(t),a=Ta(a),r=r(a),t.flags|=1,Ic(e,t,r,n),t.child;case 14:return Rc(e,t,t.type,t.pendingProps,n);case 15:return zc(e,t,t.type,t.pendingProps,n);case 19:return ll(e,t,n);case 31:return Gc(e,t,n);case 22:return Bc(e,t,n,t.pendingProps);case 24:return wa(t),r=Ta(ja),e===null?(a=Ka(),a===null&&(a=ed,o=Ma(),a.pooledCache=o,o.refCount++,o!==null&&(a.pooledCacheLanes|=n),a=o),t.memoizedState={parent:r,cache:a},ho(t),va(t,ja,a)):((e.lanes&n)!==0&&(go(e,t),Co(t,null,null,n),So()),a=e.memoizedState,o=t.memoizedState,a.parent===r?(r=o.cache,va(t,ja,r),r!==a.cache&&xa(t,[ja],n,!0)):(a={parent:r,cache:r},t.memoizedState=a,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=a),va(t,ja,r))),Ic(e,t,t.pendingProps.children,n),t.child;case 30:return t.stateNode===null&&(t.stateNode={autoName:null,paired:null,clones:null,ref:null}),r=t.pendingProps,r.name!=null&&r.name!==`auto`?t.flags|=e===null?18882560:18874368:B&&ea(t),e!==null&&e.memoizedProps.name!==r.name?t.flags|=4194816:Kc(e,t),Ic(e,t,r.children,n),t.child;case 29:throw t.pendingProps}throw Error(i(156,t.tag))}function hl(e){e.flags|=4}function gl(e,t,n,r,i){var a;if((a=!!(e.mode&32))&&(a=n===null?Jm(t,r):Jm(t,r)&&(r.src!==n.src||r.srcSet!==n.srcSet)),a){if(e.flags|=16777216,(i&335544128)===i){if(e.stateNode.complete)e.flags|=8192;else if(Hd())e.flags|=8192;else throw no=Qa,Xa}}else e.flags&=-16777217}function _l(e,t){if(t.type!==`stylesheet`||t.state.loading&4)e.flags&=-16777217;else if(e.flags|=16777216,!Ym(t)){if(Hd())e.flags|=8192;else throw no=Qa,Xa}}function vl(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag===22?536870912:ut(),e.lanes|=t,ld|=t)}function yl(e,t){if(!B)switch(e.tailMode){case`visible`:break;case`collapsed`:for(var n=e.tail,r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null;break;default:for(t=e.tail,n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null}}function bl(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags&1206910976,r|=i.flags&1206910976,i.return=e,i=i.sibling;else for(i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags,r|=i.flags,i.return=e,i=i.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function xl(e,t,n){var r=t.pendingProps;switch(ta(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return bl(t),null;case 1:return bl(t),null;case 3:return n=t.stateNode,r=null,e!==null&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),ya(ja),De(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(da(t)?hl(t):e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,pa())),bl(t),null;case 26:var a=t.type,o=t.memoizedState;return e===null?(hl(t),o===null?(bl(t),gl(t,a,null,r,n)):(bl(t),_l(t,o))):o?o===e.memoizedState?(bl(t),t.flags&=-16777217):(hl(t),bl(t),_l(t,o)):(e=e.memoizedProps,e!==r&&hl(t),bl(t),gl(t,a,e,r,n)),null;case 27:if(ke(t),n=we.current,a=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&hl(t);else{if(!r){if(t.stateNode===null)throw Error(i(166));return bl(t),t.subtreeFlags&=-33554433,null}e=Se.current,da(t)?la(t,e):(e=hm(a,r,n),t.stateNode=e,hl(t))}return bl(t),t.subtreeFlags&=-33554433,null;case 5:if(ke(t),a=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&hl(t);else{if(!r){if(t.stateNode===null)throw Error(i(166));return bl(t),t.subtreeFlags&=-33554433,null}if(o=Se.current,da(t))la(t,o);else{var s=lp(we.current);switch(o){case 1:o=s.createElementNS(`http://www.w3.org/2000/svg`,a);break;case 2:o=s.createElementNS(`http://www.w3.org/1998/Math/MathML`,a);break;default:switch(a){case`svg`:o=s.createElementNS(`http://www.w3.org/2000/svg`,a);break;case`math`:o=s.createElementNS(`http://www.w3.org/1998/Math/MathML`,a);break;case`script`:o=s.createElement(`div`),o.innerHTML=`<script><\\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(a,{is:r.is}):s.createElement(a)}}o[St]=t,o[Ct]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=o;a:switch(np(o,a,r),a){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&hl(t)}}return bl(t),t.subtreeFlags&=-33554433,gl(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&hl(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(i(166));if(e=we.current,da(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,a=ra,a!==null)switch(a.tag){case 27:case 5:r=a.memoizedProps}e[St]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||$f(e.nodeValue,n)),e||ca(t,!0)}else e=lp(e).createTextNode(r),e[St]=t,t.stateNode=e}return bl(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=da(t),n!==null){if(e===null){if(!r)throw Error(i(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(557));e[St]=t}else fa(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;bl(t),e=!1}else n=pa(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(Lo(t),t):(Lo(t),null);if(t.flags&128)throw Error(i(558))}return bl(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(a=da(t),r!==null&&r.dehydrated!==null){if(e===null){if(!a)throw Error(i(318));if(a=t.memoizedState,a=a===null?null:a.dehydrated,!a)throw Error(i(317));a[St]=t}else fa(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;bl(t),a=!1}else a=pa(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return t.flags&256?(Lo(t),t):(Lo(t),null)}return Lo(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,a=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(a=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==a&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),vl(t,t.updateQueue),bl(t),null);case 4:return De(),e===null&&Uf(t.stateNode.containerInfo),t.flags|=67108864,bl(t),null;case 10:return ya(t.type),bl(t),null;case 19:if(Bo(t),r=t.memoizedState,r===null)return bl(t),null;if(a=!!(t.flags&128),o=r.rendering,o===null){if(a)yl(r,!1);else{if(id!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=Vo(e),o!==null){for(t.flags|=128,yl(r,!1),e=o.updateQueue,t.updateQueue=e,vl(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)Fi(n,e),n=n.sibling;return zo(t,Ro.current&1|2),B&&Qi(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&Be()>hd&&(t.flags|=128,a=!0,yl(r,!1),t.lanes=4194304)}}else{if(!a){if(e=Vo(o),e!==null){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,vl(t,e),yl(r,!0),r.tail===null&&r.tailMode!==`collapsed`&&r.tailMode!==`visible`&&!o.alternate&&!B)return bl(t),null}else 2*Be()-r.renderingStartTime>hd&&n!==536870912&&(t.flags|=128,a=!0,yl(r,!1),t.lanes=4194304)}r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}if(r.tail!==null){e=r.tail;a:{for(n=e;n!==null;){if(n.alternate!==null){n=!1;break a}n=n.sibling}n=!0}return r.rendering=e,r.tail=e.sibling,r.renderingStartTime=Be(),e.sibling=null,o=Ro.current,o=a?o&1|2:o&1,r.tailMode===`visible`||r.tailMode===`collapsed`||!n||B?zo(t,o):(n=o,I(jo,t),I(Ro,n),Mo===null&&(Mo=t)),B&&Qi(t,r.treeForkCount),e}return bl(t),null;case 22:case 23:return Lo(t),Ao(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(bl(t),t.subtreeFlags&6&&(t.flags|=8192)):bl(t),n=t.updateQueue,n!==null&&vl(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&F(Ga),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),ya(ja),bl(t),null;case 25:return null;case 30:return t.flags|=33554432,bl(t),null}throw Error(i(156,t.tag))}function Sl(e,t){switch(ta(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return ya(ja),De(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return ke(t),null;case 31:if(t.memoizedState!==null){if(Lo(t),t.alternate===null)throw Error(i(340));fa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(Lo(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(i(340));fa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Bo(t),e=t.flags,e&65536?(t.flags=e&-65537|128,e=t.memoizedState,e!==null&&(e.rendering=null,e.tail=null),t.flags|=4,t):null;case 4:return De(),null;case 10:return ya(t.type),null;case 22:case 23:return Lo(t),Ao(),e!==null&&F(Ga),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return ya(ja),null;case 25:return null;default:return null}}function Cl(e,t){switch(ta(t),t.tag){case 3:ya(ja),De();break;case 26:case 27:case 5:ke(t);break;case 4:De();break;case 31:t.memoizedState!==null&&Lo(t);break;case 13:Lo(t);break;case 19:Bo(t);break;case 10:ya(t.type);break;case 22:case 23:Lo(t),Ao(),e!==null&&F(Ga);break;case 24:ya(ja)}}function wl(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){pf(t,t.return,e)}}function Tl(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){pf(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){pf(t,t.return,e)}}function El(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{To(t,n)}catch(t){pf(e,e.return,t)}}}function Dl(e,t,n){n.props=wc(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){pf(e,t,n)}}function Ol(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:var i=e.stateNode,a=_i(e.memoizedProps,i);(i.ref===null||i.ref.name!==a)&&(i.ref=Pp(a)),r=i.ref;break;case 7:if(e.stateNode===null){var o=new Fp(e);h(e.child,!1,Qp,o,void 0,void 0),e.stateNode=o}r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){pf(e,t,n)}}function kl(e,t){var n=e.ref,r=e.refCleanup;if(n!==null){if(typeof r==`function`)try{r()}catch(n){pf(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){pf(e,t,n)}else n.current=null}}function Al(e,t){if((e.tag===5||e.tag===27||e.tag===6)&&e.alternate===null&&t!==null)for(var n=0;n<t.length;n++)em(e.stateNode,t[n])}function jl(e){for(var t=e.return;t!==null&&(Pl(t)&&em(e.stateNode,t.stateNode),!Nl(t));)t=t.return}function Ml(e){for(var t=e.return;t!==null&&(Pl(t)&&tm(e.stateNode,t.stateNode),!Nl(t));)t=t.return}function Nl(e){return e.tag===5||e.tag===3||e.tag===27}function Pl(e){return e&&e.tag===7&&e.stateNode!==null}function Fl(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){pf(e,e.return,t)}}function Il(e,t,n){try{var r=e.stateNode;ip(r,e.type,n,t),r[Ct]=t}catch(t){pf(e,e.return,t)}}function Ll(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Sp(e.type)||e.tag===4}function Rl(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||Ll(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&Sp(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function zl(e,t,n,r){var i=e.tag;if(i===5||i===6)i=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(i,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(i),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=vn)),Al(e,r),z=!0;else if(i!==4&&(i===27&&(Al(e,r),r=null,Sp(e.type)&&(n=e.stateNode,t=null)),e=e.child,e!==null))for(zl(e,t,n,r),e=e.sibling;e!==null;)zl(e,t,n,r),e=e.sibling}function Bl(e,t,n,r){var i=e.tag;if(i===5||i===6)i=e.stateNode,t?n.insertBefore(i,t):n.appendChild(i),Al(e,r),z=!0;else if(i!==4&&(i===27&&(Al(e,r),r=null,Sp(e.type)&&(n=e.stateNode)),e=e.child,e!==null))for(Bl(e,t,n,r),e=e.sibling;e!==null;)Bl(e,t,n,r),e=e.sibling}function Vl(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);np(t,r,n),t[St]=e,t[Ct]=n}catch(t){pf(e,e.return,t)}}var Hl=!1,Ul=null;function Wl(e){(e.tag===30||e.subtreeFlags&33554432)&&(Hl=!0)}var Gl=null;function Kl(){var e=Gl;return Gl=null,e}var ql=0;function Jl(e,t,n,r,i){return ql=0,Yl(e.child,t,n,r,i)}function Yl(e,t,n,r,i){for(var a=!1;e!==null;){if(e.tag===5){var o=e.stateNode;if(r!==null){var s=Op(o);r.push(s),s.view&&(a=!0)}else a||Op(o).view&&(a=!0);Hl=!0,Tp(o,ql===0?t:t+`_`+ql,n),ql++}else(e.tag!==22||e.memoizedState===null)&&(e.tag===30&&i||Yl(e.child,t,n,r,i)&&(a=!0));e=e.sibling}return a}function Xl(e,t){for(;e!==null;)e.tag===5?Ep(e.stateNode,e.memoizedProps):(e.tag!==22||e.memoizedState===null)&&(e.tag===30&&t||Xl(e.child,t)),e=e.sibling}function Zl(e){if(e.subtreeFlags&18874368)for(e=e.child;e!==null;){if((e.tag!==22||e.memoizedState===null)&&(Zl(e),e.tag===30&&e.flags&18874368&&e.stateNode.paired)){var t=e.memoizedProps;if(t.name==null||t.name===`auto`)throw Error(i(544));var n=t.name;t=yi(t.default,t.share),t!==`none`&&(Jl(e,n,t,null,!1)||Xl(e.child,!1))}e=e.sibling}}function Ql(e,t){if(e.tag===30){var n=e.stateNode,r=e.memoizedProps,i=_i(r,n),a=yi(r.default,n.paired?r.share:r.enter);a===`none`?Zl(e):Jl(e,i,a,null,!1)?(Zl(e),n.paired||t||Md(e,r.onEnter)):Xl(e.child,!1)}else if(e.subtreeFlags&33554432)for(e=e.child;e!==null;)Ql(e,t),e=e.sibling;else Zl(e)}function H(e){if(Ul!==null&&Ul.size!==0){var t=Ul;if(e.subtreeFlags&18874368)for(e=e.child;e!==null;){if(e.tag!==22||e.memoizedState===null){if(e.tag===30&&e.flags&18874368){var n=e.memoizedProps,r=n.name;if(r!=null&&r!==`auto`){var i=t.get(r);if(i!==void 0){var a=yi(n.default,n.share);if(a!==`none`&&(Jl(e,r,a,null,!1)?(a=e.stateNode,i.paired=a,a.paired=i,Md(e,n.onShare)):Xl(e.child,!1)),t.delete(r),t.size===0)break}}}H(e)}e=e.sibling}}}function $l(e){if(e.tag===30){var t=e.memoizedProps,n=_i(t,e.stateNode),r=Ul===null?void 0:Ul.get(n),i=yi(t.default,r===void 0?t.exit:t.share);i!==`none`&&(Jl(e,n,i,null,!1)?r===void 0?Md(e,t.onExit):(i=e.stateNode,r.paired=i,i.paired=r,Ul.delete(n),Md(e,t.onShare)):Xl(e.child,!1)),Ul!==null&&H(e)}else if(e.subtreeFlags&33554432)for(e=e.child;e!==null;)$l(e),e=e.sibling;else Ul!==null&&H(e)}function eu(e){for(e=e.child;e!==null;){if(e.tag===30){var t=e.memoizedProps,n=_i(t,e.stateNode);t=yi(t.default,t.update),e.flags&=-5,t!==`none`&&Jl(e,n,t,e.memoizedState=[],!1)}else e.subtreeFlags&33554432&&eu(e);e=e.sibling}}function tu(e){if(e.subtreeFlags&18874368)for(e=e.child;e!==null;){if(e.tag!==22||e.memoizedState===null){if(e.tag===30&&e.flags&18874368){var t=e.stateNode;t.paired!==null&&(t.paired=null,Xl(e.child,!1))}tu(e)}e=e.sibling}}function nu(e){if(e.tag===30)e.stateNode.paired=null,Xl(e.child,!1),tu(e);else if(e.subtreeFlags&33554432)for(e=e.child;e!==null;)nu(e),e=e.sibling;else tu(e)}function ru(e){for(e=e.child;e!==null;)e.tag===30?Xl(e.child,!1):e.subtreeFlags&33554432&&ru(e),e=e.sibling}function iu(e,t,n,r,i,a,o){for(var s=!1;t!==null;){if(t.tag===5){var c=t.stateNode;if(a!==null&&ql<a.length){var l=a[ql],u=Op(c);(l.view||u.view)&&(s=!0);var d;if(d=!(e.flags&4)){if(u.clip)d=!0;else{d=l.rect;var f=u.rect;d=d.y!==f.y||d.x!==f.x||d.height!==f.height||d.width!==f.width}}d&&(e.flags|=4),u.abs?u=!l.abs:(l=l.rect,u=u.rect,u=l.height!==u.height||l.width!==u.width),u&&(e.flags|=32)}else e.flags|=32;e.flags&4&&Tp(c,ql===0?n:n+`_`+ql,i),s&&e.flags&4||(Gl===null&&(Gl=[]),Gl.push(c,ql===0?r:r+`_`+ql,t.memoizedProps)),ql++}else(t.tag!==22||t.memoizedState===null)&&(t.tag===30&&o?e.flags|=t.flags&32:iu(e,t.child,n,r,i,a,o)&&(s=!0));t=t.sibling}return s}function au(e,t){for(e=e.child;e!==null;){if(e.tag===30){var n=e.memoizedProps,r=e.stateNode,i=_i(n,r),a=yi(n.default,n.update);if(t){r=r.clones;var o=r===null?null:r.map(kp)}else o=e.memoizedState,e.memoizedState=null;r=e;var s=e.child;ql=0,i=iu(r,s,i,i,a,o,!1),e.flags&4&&i&&(t||Md(e,n.onUpdate))}else e.subtreeFlags&33554432&&au(e,t);e=e.sibling}}var ou=!1,su=!1,cu=!1,lu=!1,U=typeof WeakSet==`function`?WeakSet:Set,uu=null,du=!1,fu=!1,pu=!1,mu=!1;function hu(e,t,n){if(e=e.containerInfo,sp=gh,e=qr(e),Jr(e)){if(`selectionStart`in e)var r={start:e.selectionStart,end:e.selectionEnd};else a:{r=(r=e.ownerDocument)&&r.defaultView||window;var i=r.getSelection&&r.getSelection();if(i&&i.rangeCount!==0){r=i.anchorNode;var a=i.anchorOffset,o=i.focusNode;i=i.focusOffset;try{r.nodeType,o.nodeType}catch{r=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==r||a!==0&&f.nodeType!==3||(c=s+a),f!==o||i!==0&&f.nodeType!==3||(l=s+i),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===r&&++u===a&&(c=s),p===o&&++d===i&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}r=c===-1||l===-1?null:{start:c,end:l}}else r=null}r||={start:0,end:0}}else r=null;for(cp={focusedElem:e,selectionRange:r},gh=!1,n=(n&335544064)===n,uu=t,t=n?9270:1024;uu!==null;){if(e=uu,n&&(r=e.deletions,r!==null))for(a=0;a<r.length;a++)n&&$l(r[a]);if(e.alternate===null&&e.flags&2)n&&Wl(e),gu(n);else{if(e.tag===22){if(r=e.alternate,e.memoizedState!==null){r!==null&&r.memoizedState===null&&n&&$l(r),gu(n);continue}if(r!==null&&r.memoizedState!==null){n&&Wl(e),gu(n);continue}}r=e.child,(e.subtreeFlags&t)!==0&&r!==null?(r.return=e,uu=r):(n&&eu(e),gu(n))}}Ul=null}function gu(e){for(;uu!==null;){var t=uu,n=e,r=t.alternate,a=t.flags;switch(t.tag){case 0:case 11:case 15:break;case 1:if(a&1024&&r!==null){n=void 0,a=r.memoizedProps,r=r.memoizedState;var o=t.stateNode;try{var s=wc(t.type,a);n=o.getSnapshotBeforeUpdate(s,r),o.__reactInternalSnapshotBeforeUpdate=n}catch(e){pf(t,t.return,e)}}break;case 3:if(a&1024){if(r=t.stateNode.containerInfo,n=r.nodeType,n===9)nm(r);else if(n===1)switch(r.nodeName){case`HEAD`:case`HTML`:case`BODY`:nm(r);break;default:r.textContent=``}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;case 30:n&&r!==null&&(n=_i(r.memoizedProps,r.stateNode),a=t.memoizedProps,a=yi(a.default,a.update),a!==`none`&&Jl(r,n,a,r.memoizedState=[],!0));break;default:if(a&1024)throw Error(i(163))}if(r=t.sibling,r!==null){r.return=t.return,uu=r;break}uu=t.return}}function W(e,t,n){var r=n.flags;switch(n.tag){case 0:case 11:case 15:Fu(e,n),r&4&&wl(5,n);break;case 1:if(Fu(e,n),r&4){if(e=n.stateNode,t===null)try{e.componentDidMount()}catch(e){pf(n,n.return,e)}else{var i=wc(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(i,t,e.__reactInternalSnapshotBeforeUpdate)}catch(e){pf(n,n.return,e)}}}r&64&&El(n),r&512&&Ol(n,n.return);break;case 3:if(Fu(e,n),r&64&&(e=n.updateQueue,e!==null)){if(t=null,n.child!==null)switch(n.child.tag){case 27:case 5:t=n.child.stateNode;break;case 1:t=n.child.stateNode}try{To(e,t)}catch(e){pf(n,n.return,e)}}break;case 27:t===null&&r&4&&Vl(n);case 26:case 5:Fu(e,n),t===null&&r&4&&Fl(n),r&512&&Ol(n,n.return);break;case 12:Fu(e,n);break;case 31:Fu(e,n),r&4&&Tu(e,n);break;case 13:Fu(e,n),r&4&&Eu(e,n),r&64&&(e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(n=_f.bind(null,n),cm(e,n))));break;case 22:if(r=n.memoizedState!==null||ou,!r){var a=t!==null&&t.memoizedState!==null||su;t=ou,i=su,ou=r,(su=a)&&!i?(r=2,n.subtreeFlags&8772&&(r|=1),Lu(e,n,r)):Fu(e,n),ou=t,su=i}break;case 30:Fu(e,n),r&512&&Ol(n,n.return);break;case 7:r&512&&Ol(n,n.return);default:Fu(e,n)}}function _u(e,t){for(e=e.child;e!==null;)vu(e,t),e=e.sibling}function vu(e,t){switch(e.tag){case 5:case 26:try{var n=e.stateNode;if(t){var r=n.style;typeof r.setProperty==`function`?r.setProperty(`display`,`none`,`important`):r.display=`none`}else{var i=e.stateNode,a=e.memoizedProps.style,o=a!=null&&a.hasOwnProperty(`display`)?a.display:null;i.style.display=o==null||typeof o==`boolean`?``:(``+o).trim()}}catch(t){pf(e,e.return,t)}yu(e,t);break;case 6:try{e.stateNode.nodeValue=t?``:e.memoizedProps,z=!0}catch(t){pf(e,e.return,t)}break;case 18:try{var s=e.stateNode;t?wp(s,!0):wp(e.stateNode,!1)}catch(t){pf(e,e.return,t)}break;case 22:case 23:e.memoizedState===null&&_u(e,t);break;default:_u(e,t)}}function yu(e,t){if(e.subtreeFlags&67108864)for(e=e.child;e!==null;){a:{var n=e,r=t;switch(n.tag){case 4:vu(n,r);break a;case 22:n.memoizedState===null&&yu(n,r);break a;default:yu(n,r)}}e=e.sibling}}function bu(e){var t=e.alternate;t!==null&&(e.alternate=null,bu(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&jt(t)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var xu=null,Su=!1;function Cu(e,t,n){for(n=n.child;n!==null;)wu(e,t,n),n=n.sibling}function wu(e,t,n){if(Xe&&typeof Xe.onCommitFiberUnmount==`function`)try{Xe.onCommitFiberUnmount(Ye,n)}catch{}switch(n.tag){case 26:su||kl(n,t),Cu(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&!su&&(n=n.stateNode,n.parentNode.removeChild(n));break;case 27:su||kl(n,t),Ml(n);var r=xu,i=Su;Sp(n.type)&&(xu=n.stateNode,Su=!1),Cu(e,t,n),gm(n.stateNode,n.type,n.memoizedProps),xu=r,Su=i;break;case 5:su||kl(n,t),Ml(n);case 6:if(n.tag===6&&Ml(n),r=xu,i=Su,xu=null,Cu(e,t,n),xu=r,Su=i,xu!==null){if(Su)try{(xu.nodeType===9?xu.body:xu.nodeName===`HTML`?xu.ownerDocument.body:xu).removeChild(n.stateNode),z=!0}catch(e){pf(n,t,e)}else try{xu.removeChild(n.stateNode),z=!0}catch(e){pf(n,t,e)}}break;case 18:xu!==null&&(Su?(e=xu,Cp(e.nodeType===9?e.body:e.nodeName===`HTML`?e.ownerDocument.body:e,n.stateNode),Hh(e)):Cp(xu,n.stateNode));break;case 4:r=xu,i=Su,xu=n.stateNode.containerInfo,Su=!0,Cu(e,t,n),xu=r,Su=i;break;case 0:case 11:case 14:case 15:Tl(2,n,t),su||Tl(4,n,t),Cu(e,t,n);break;case 1:su||(kl(n,t),r=n.stateNode,typeof r.componentWillUnmount==`function`&&Dl(n,t,r)),Cu(e,t,n);break;case 21:Cu(e,t,n);break;case 22:su=(r=su)||n.memoizedState!==null,Cu(e,t,n),su=r;break;case 30:kl(n,t),Cu(e,t,n);break;case 7:su||kl(n,t),Cu(e,t,n);break;default:Cu(e,t,n)}}function Tu(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{Hh(e)}catch(e){pf(t,t.return,e)}}}function Eu(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{Hh(e)}catch(e){pf(t,t.return,e)}}function Du(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return t===null&&(t=e.stateNode=new U),t;case 22:return e=e.stateNode,t=e._retryCache,t===null&&(t=e._retryCache=new U),t;default:throw Error(i(435,e.tag))}}function Ou(e,t){var n=Du(e);t.forEach(function(t){if(!n.has(t)){n.add(t);var r=vf.bind(null,e,t);t.then(r,r)}})}function ku(e,t,n){var r=t.deletions;if(r!==null)for(var a=0;a<r.length;a++){var o=r[a],s=e,c=t,l=c;a:for(;l!==null;){switch(l.tag){case 27:if(Sp(l.type)){xu=l.stateNode,Su=!1;break a}break;case 5:xu=l.stateNode,Su=!1;break a;case 3:case 4:xu=l.stateNode.containerInfo,Su=!0;break a}l=l.return}if(xu===null)throw Error(i(160));wu(s,c,o),xu=null,Su=!1,s=o.alternate,s!==null&&(s.return=null),o.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)ju(t,e,n),t=t.sibling}var Au=null;function ju(e,t,n){var r=e.alternate,a=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(a&4&&(r=e.updateQueue,r=r===null?null:r.events,r!==null))for(var o=0;o<r.length;o++){var s=r[o];s.ref.impl=s.nextImpl}ku(t,e,n),Mu(e),a&4&&(Tl(3,e,e.return),wl(3,e),Tl(5,e,e.return));break;case 1:ku(t,e,n),Mu(e),a&512&&(su||r===null||kl(r,r.return)),a&64&&ou&&(e=e.updateQueue,e!==null&&(t=e.callbacks,t!==null&&(n=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=n===null?t:n.concat(t))));break;case 26:if(o=Au,ku(t,e,n),Mu(e),a&512&&(su||r===null||kl(r,r.return)),a&4){if(a=r===null?null:r.memoizedState,n=e.memoizedState,r===null){if(n===null){if(e.stateNode===null){if(ou)e.stateNode=fp(e.type,e.memoizedProps,t.containerInfo,e);else{a:{t=e.type,n=e.memoizedProps,a=o.ownerDocument||o;b:switch(t){case`title`:r=a.getElementsByTagName(`title`)[0],(!r||r[kt]||r[St]||r.namespaceURI===`http://www.w3.org/2000/svg`||r.hasAttribute(`itemprop`))&&(r=a.createElement(t),a.head.insertBefore(r,a.querySelector(`head > title`))),np(r,t,n),r[St]=e,It(r),t=r;break a;case`link`:if(o=Gm(`link`,`href`,a).get(t+(n.href||``))){for(s=0;s<o.length;s++)if(r=o[s],r.getAttribute(`href`)===(n.href==null||n.href===``?null:n.href)&&r.getAttribute(`rel`)===(n.rel==null?null:n.rel)&&r.getAttribute(`title`)===(n.title==null?null:n.title)&&r.getAttribute(`crossorigin`)===(n.crossOrigin==null?null:n.crossOrigin)){o.splice(s,1);break b}}r=a.createElement(t),np(r,t,n),a.head.appendChild(r);break;case`meta`:if(o=Gm(`meta`,`content`,a).get(t+(n.content||``))){for(s=0;s<o.length;s++)if(r=o[s],r.getAttribute(`content`)===(n.content==null?null:``+n.content)&&r.getAttribute(`name`)===(n.name==null?null:n.name)&&r.getAttribute(`property`)===(n.property==null?null:n.property)&&r.getAttribute(`http-equiv`)===(n.httpEquiv==null?null:n.httpEquiv)&&r.getAttribute(`charset`)===(n.charSet==null?null:n.charSet)){o.splice(s,1);break b}}r=a.createElement(t),np(r,t,n),a.head.appendChild(r);break;default:throw Error(i(468,t))}r[St]=e,It(r),t=r}e.stateNode=t}}else ou||Km(o,e.type,e.stateNode)}else e.stateNode=Bm(o,n,e.memoizedProps)}else a===n?n===null&&e.stateNode!==null&&Il(e,e.memoizedProps,r.memoizedProps):(a===null?(t=r.stateNode,t===null||su||t.parentNode.removeChild(t)):a.count--,n===null?ou||Km(o,e.type,e.stateNode):Bm(o,n,e.memoizedProps))}break;case 27:ku(t,e,n),Mu(e),a&512&&(su||r===null||kl(r,r.return)),r!==null&&a&4&&Il(e,e.memoizedProps,r.memoizedProps);break;case 5:if(o=cu,cu=!1,ku(t,e,n),cu=o,Mu(e),a&512&&(su||r===null||kl(r,r.return)),e.flags&32){t=e.stateNode;try{un(t,``),z=!0}catch(t){pf(e,e.return,t)}}a&4&&e.stateNode!=null&&(t=e.memoizedProps,Il(e,t,r===null?t:r.memoizedProps)),a&1024&&(lu=!0);break;case 6:if(ku(t,e,n),Mu(e),a&4){if(e.stateNode===null)throw Error(i(162));t=e.memoizedProps,n=e.stateNode;try{n.nodeValue=t,z=!0}catch(t){pf(e,e.return,t)}}break;case 3:if(z=!1,Wm=null,o=Au,Au=bm(t.containerInfo),ku(t,e,n),Au=o,Mu(e),a&4&&r!==null&&r.memoizedState.isDehydrated)try{Hh(t.containerInfo)}catch(t){pf(e,e.return,t)}lu&&(lu=!1,Nu(e)),z=!1;break;case 4:a=cu,cu=ou,r=Kt(),o=Au,Au=bm(e.stateNode.containerInfo),ku(t,e,n),Mu(e),Au=o,z&&fu&&(pu=!0),z=r,cu=a;break;case 12:ku(t,e,n),Mu(e);break;case 31:ku(t,e,n),Mu(e),a&4&&(t=e.updateQueue,t!==null&&(e.updateQueue=null,Ou(e,t)));break;case 13:ku(t,e,n),Mu(e),e.child.flags&8192&&e.memoizedState!==null!=(r!==null&&r.memoizedState!==null)&&(pd=Be()),a&4&&(t=e.updateQueue,t!==null&&(e.updateQueue=null,Ou(e,t)));break;case 22:o=e.memoizedState!==null,s=r!==null&&r.memoizedState!==null;var c=ou,l=su,u=cu;ou=c||o,cu=u||o,su=l||s,ku(t,e,n),su=l,cu=u,ou=c,Mu(e),a&8192&&(t=e.stateNode,t._visibility=o?t._visibility&-2:t._visibility|1,!o||r===null||s||ou||su||(t=s||su,n=ou,r=su,ou=o||ou,su=t,Iu(e,2),ou=n,su=r),!o&&cu||_u(e,o)),a&4&&(t=e.updateQueue,t!==null&&(n=t.retryQueue,n!==null&&(t.retryQueue=null,Ou(e,n))));break;case 19:ku(t,e,n),Mu(e),a&4&&(t=e.updateQueue,t!==null&&(e.updateQueue=null,Ou(e,t)));break;case 30:a&512&&(su||r===null||kl(r,r.return)),a=Kt(),o=fu,s=(n&335544064)===n,c=e.memoizedProps,fu=s&&yi(c.default,c.update)!==`none`,ku(t,e,n),Mu(e),s&&r!==null&&z&&(e.flags|=4),fu=o,z=a;break;case 21:break;case 7:a&512&&(su||r===null||kl(r,r.return)),r&&r.stateNode!==null&&(r.stateNode._fragmentFiber=e);default:ku(t,e,n),Mu(e)}}function Mu(e){var t=e.flags;if(t&2){try{for(var n,r=e.return;r!==null;){if(Ll(r)){n=r;break}r=r.return}r=null;for(var a=e.return;a!==null;){if(Pl(a)){var o=a.stateNode;r===null?r=[o]:r.push(o)}if(Nl(a))break;a=a.return}var s=r;if(n==null)throw Error(i(160));switch(n.tag){case 27:var c=n.stateNode;Bl(e,Rl(e),c,s);break;case 5:var l=n.stateNode;n.flags&32&&(un(l,``),n.flags&=-33),Bl(e,Rl(e),l,s);break;case 3:case 4:var u=n.stateNode.containerInfo;zl(e,Rl(e),u,s);break;default:throw Error(i(161))}}catch(t){pf(e,e.return,t)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function Nu(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;Nu(t),t.tag===5&&t.flags&1024&&(t=t.stateNode,gh=!0,t.reset(),gh=!1),e=e.sibling}}function Pu(e,t){if(t.subtreeFlags&9270)for(t=t.child;t!==null;)G(t,e),t=t.sibling;else au(t,!1)}function G(e,t){var n=e.alternate;if(n===null)Ql(e,!1);else switch(e.tag){case 3:if(mu=du=!1,Kl(),Pu(t,e),!du&&!pu){if(e=Gl,e!==null)for(var r=0;r<e.length;r+=3){n=e[r];var i=e[r+1];Ep(n,e[r+2]),n=n.ownerDocument.documentElement,n!==null&&n.animate({opacity:[0,0],pointerEvents:[`none`,`none`]},{duration:0,fill:`forwards`,pseudoElement:`::view-transition-group(`+i+`)`})}e=t.containerInfo,e=e.nodeType===9?e.documentElement:e.ownerDocument.documentElement,e!==null&&e.style.viewTransitionName===``&&(e.style.viewTransitionName=`none`,e.animate({opacity:[0,0],pointerEvents:[`none`,`none`]},{duration:0,fill:`forwards`,pseudoElement:`::view-transition-group(root)`}),e.animate({width:[0,0],height:[0,0]},{duration:0,fill:`forwards`,pseudoElement:`::view-transition`})),mu=!0}Gl=null;break;case 5:Pu(t,e);break;case 4:r=du,du=!1,Pu(t,e),du&&(pu=!0),du=r;break;case 22:e.memoizedState===null&&(n.memoizedState===null?Pu(t,e):Ql(e,!1));break;case 30:r=du,i=Kl(),du=!1,Pu(t,e),du&&(e.flags|=4);var a=e.memoizedProps,o=e.stateNode;t=_i(a,o),o=_i(n.memoizedProps,o);var s=yi(a.default,a.update);s===`none`?t=!1:(a=n.memoizedState,n.memoizedState=null,n=e.child,ql=0,t=iu(e,n,t,o,s,a,!0),ql!==(a===null?0:a.length)&&(e.flags|=32)),e.flags&4&&t?(Md(e,e.memoizedProps.onUpdate),Gl=i):i!==null&&(i.push.apply(i,Gl),Gl=i),du=e.flags&32?!0:r;break;default:Pu(t,e)}}function Fu(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)W(e,t.alternate,t),t=t.sibling}function Iu(e,t){for(e=e.child;e!==null;){var n=e,r=t;switch(n.tag){case 0:case 11:case 14:case 15:Tl(4,n,n.return),Iu(n,r);break;case 1:kl(n,n.return);var i=n.stateNode;typeof i.componentWillUnmount==`function`&&Dl(n,n.return,i),Iu(n,r);break;case 27:r&2&&gm(n.stateNode,n.type,n.memoizedProps);case 5:kl(n,n.return),n.tag!==5&&n.tag!==27||Ml(n),Iu(n,r);break;case 6:Ml(n);break;case 26:kl(n,n.return),i=n.stateNode,n.memoizedState!==null||i===null||su||i.parentNode.removeChild(i),Iu(n,r);break;case 22:n.memoizedState===null&&Iu(n,r);break;case 30:kl(n,n.return),Iu(n,r);break;case 7:kl(n,n.return);default:Iu(n,r)}e=e.sibling}}function Lu(e,t,n){for(n=t.subtreeFlags&8772?n:n&-2,t=t.child;t!==null;){var r=t.alternate,i=e,a=t,o=a.flags,s=!!(n&1);switch(a.tag){case 0:case 11:case 15:Lu(i,a,n),wl(4,a);break;case 1:if(Lu(i,a,n),r=a,i=r.stateNode,typeof i.componentDidMount==`function`)try{i.componentDidMount()}catch(e){pf(r,r.return,e)}if(r=a,i=r.updateQueue,i!==null){var c=r.stateNode;try{var l=i.shared.hiddenCallbacks;if(l!==null)for(i.shared.hiddenCallbacks=null,i=0;i<l.length;i++)wo(l[i],c)}catch(e){pf(r,r.return,e)}}s&&o&64&&El(a),Ol(a,a.return);break;case 27:n&2&&Vl(a);case 5:a.tag!==5&&a.tag!==27||jl(a),Lu(i,a,n),s&&r===null&&o&4&&Fl(a),Ol(a,a.return);break;case 6:jl(a);break;case 26:c=a.stateNode,a.memoizedState!==null||c===null||ou||Km(bm(c.ownerDocument),a.type,c),Lu(i,a,n),s&&r===null&&o&4&&Fl(a),Ol(a,a.return);break;case 12:Lu(i,a,n);break;case 31:Lu(i,a,n),s&&o&4&&Tu(i,a);break;case 13:Lu(i,a,n),s&&o&4&&Eu(i,a);break;case 22:a.memoizedState===null&&Lu(i,a,n),Ol(a,a.return);break;case 30:Lu(i,a,n),Ol(a,a.return);break;case 7:Ol(a,a.return);default:Lu(i,a,n)}t=t.sibling}}function Ru(e,t){var n=null;e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),e=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(e=t.memoizedState.cachePool.pool),e!==n&&(e!=null&&e.refCount++,n!=null&&Na(n))}function zu(e,t){e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&Na(e))}function Bu(e,t,n,r){var i=(n&335544064)===n;if(t.subtreeFlags&(i?10262:10256))for(t=t.child;t!==null;)Vu(e,t,n,r),t=t.sibling;else i&&ru(t)}function Vu(e,t,n,r){var i=(n&335544064)===n;i&&t.alternate===null&&t.return!==null&&t.return.alternate!==null&&nu(t);var a=t.flags;switch(t.tag){case 0:case 11:case 15:Bu(e,t,n,r),a&2048&&wl(9,t);break;case 1:Bu(e,t,n,r);break;case 3:Bu(e,t,n,r),i&&mu&&(e=e.containerInfo,e=e.nodeType===9?e.body:e.nodeName===`HTML`?e.ownerDocument.body:e,e.style.viewTransitionName===`root`&&(e.style.viewTransitionName=``),e=e.ownerDocument.documentElement,e!==null&&e.style.viewTransitionName===`none`&&(e.style.viewTransitionName=``)),a&2048&&(a=null,t.alternate!==null&&(a=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==a&&(t.refCount++,a!=null&&Na(a)));break;case 12:if(a&2048){Bu(e,t,n,r),a=t.stateNode;try{var o=t.memoizedProps,s=o.id,c=o.onPostCommit;typeof c==`function`&&c(s,t.alternate===null?`mount`:`update`,a.passiveEffectDuration,-0)}catch(e){pf(t,t.return,e)}}else Bu(e,t,n,r);break;case 31:Bu(e,t,n,r);break;case 13:Bu(e,t,n,r);break;case 23:break;case 22:o=t.stateNode,s=t.alternate,t.memoizedState===null?(i&&s!==null&&s.memoizedState!==null&&nu(t),o._visibility&2?Bu(e,t,n,r):(o._visibility|=2,Hu(e,t,n,r,!!(t.subtreeFlags&10256)||!1))):(i&&s!==null&&s.memoizedState===null&&nu(s),o._visibility&2?Bu(e,t,n,r):Uu(e,t)),a&2048&&Ru(s,t);break;case 24:Bu(e,t,n,r),a&2048&&zu(t.alternate,t);break;case 30:i&&(a=t.alternate,a!==null&&(Xl(a.child,!0),Xl(t.child,!0))),Bu(e,t,n,r);break;default:Bu(e,t,n,r)}}function Hu(e,t,n,r,i){for(i&&=!!(t.subtreeFlags&10256)||!1,t=t.child;t!==null;){var a=e,o=t,s=n,c=r,l=o.flags;switch(o.tag){case 0:case 11:case 15:Hu(a,o,s,c,i),wl(8,o);break;case 23:break;case 22:var u=o.stateNode;o.memoizedState===null?(u._visibility|=2,Hu(a,o,s,c,i)):u._visibility&2?Hu(a,o,s,c,i):Uu(a,o),i&&l&2048&&Ru(o.alternate,o);break;case 24:Hu(a,o,s,c,i),i&&l&2048&&zu(o.alternate,o);break;default:Hu(a,o,s,c,i)}t=t.sibling}}function Uu(e,t){if(t.subtreeFlags&10256)for(t=t.child;t!==null;){var n=e,r=t,i=r.flags;switch(r.tag){case 22:Uu(n,r),i&2048&&Ru(r.alternate,r);break;case 24:Uu(n,r),i&2048&&zu(r.alternate,r);break;default:Uu(n,r)}t=t.sibling}}var Wu=8192;function Gu(e,t,n){if(e.subtreeFlags&Wu)for(e=e.child;e!==null;)Ku(e,t,n),e=e.sibling}function Ku(e,t,n){switch(e.tag){case 26:Gu(e,t,n),e.flags&Wu&&(e.memoizedState===null?(e=e.stateNode,(t&335544128)===t&&Zm(n,e)):Qm(n,Au,e.memoizedState,e.memoizedProps));break;case 5:Gu(e,t,n),e.flags&Wu&&(e=e.stateNode,(t&335544128)===t&&Zm(n,e));break;case 3:case 4:var r=Au;Au=bm(e.stateNode.containerInfo),Gu(e,t,n),Au=r;break;case 22:e.memoizedState===null&&(r=e.alternate,r!==null&&r.memoizedState!==null?(r=Wu,Wu=16777216,Gu(e,t,n),Wu=r):Gu(e,t,n));break;case 30:if((e.flags&Wu)!==0&&(r=e.memoizedProps.name,r!=null&&r!==`auto`)){var i=e.stateNode;i.paired=null,Ul===null&&(Ul=new Map),Ul.set(r,i)}Gu(e,t,n);break;default:Gu(e,t,n)}}function qu(e){var t=e.alternate;if(t!==null&&(e=t.child,e!==null)){t.child=null;do t=e.sibling,e.sibling=null,e=t;while(e!==null)}}function Ju(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];uu=r,Zu(r,e)}qu(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)Yu(e),e=e.sibling}function Yu(e){switch(e.tag){case 0:case 11:case 15:Ju(e),e.flags&2048&&Tl(9,e,e.return);break;case 3:Ju(e);break;case 12:Ju(e);break;case 22:var t=e.stateNode;e.memoizedState!==null&&t._visibility&2&&(e.return===null||e.return.tag!==13)?(t._visibility&=-3,Xu(e)):Ju(e);break;default:Ju(e)}}function Xu(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];uu=r,Zu(r,e)}qu(e)}for(e=e.child;e!==null;){switch(t=e,t.tag){case 0:case 11:case 15:Tl(8,t,t.return),Xu(t);break;case 22:n=t.stateNode,n._visibility&2&&(n._visibility&=-3,Xu(t));break;default:Xu(t)}e=e.sibling}}function Zu(e,t){for(;uu!==null;){var n=uu;switch(n.tag){case 0:case 11:case 15:Tl(8,n,t);break;case 23:case 22:if(n.memoizedState!==null&&n.memoizedState.cachePool!==null){var r=n.memoizedState.cachePool.pool;r!=null&&r.refCount++}break;case 24:Na(n.memoizedState.cache)}if(r=n.child,r!==null)r.return=n,uu=r;else a:for(n=e;uu!==null;){r=uu;var i=r.sibling,a=r.return;if(bu(r),r===n){uu=null;break a}if(i!==null){i.return=a,uu=i;break a}uu=a}}}var Qu={getCacheForType:function(e){var t=Ta(ja),n=t.data.get(e);return n===void 0&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return Ta(ja).controller.signal}},$u=typeof WeakMap==`function`?WeakMap:Map,K=0,ed=null,q=null,J=0,td=0,nd=null,Y=!1,X=!1,Z=!1,rd=0,id=0,ad=0,od=0,sd=0,cd=0,ld=0,ud=null,dd=null,fd=!1,pd=0,md=0,hd=1/0,gd=null,_d=null,vd=0,yd=null,bd=null,xd=0,Sd=0,Cd=null,wd=null,Td=null,Ed=null,Dd=null,Od=0,kd=null;function Ad(){return K&2&&J!==0?J&-J:N.T===null?yt():Nf()}function jd(){if(cd===0){if(!(J&536870912)||B){var e=rt;rt<<=1,!(rt&3932160)&&(rt=262144),cd=e}else cd=536870912}return e=jo.current,e!==null&&(e.flags|=32),cd}function Md(e,t){if(t!=null){var n=e.stateNode,r=n.ref;r===null&&(r=n.ref=Pp(_i(e.memoizedProps,n))),Ed===null&&(Ed=[]),Ed.push(t.bind(null,r))}}function Nd(e,t,n){(e===ed&&(td===2||td===9)||e.cancelPendingCommit!==null)&&(Bd(e,0),Ld(e,J,cd,!1)),ft(e,n),(!(K&2)||e!==ed)&&(e===ed&&(!(K&2)&&(od|=n),id===4&&Ld(e,J,cd,!1)),Tf(e))}function Pd(e,t,n){if(K&6)throw Error(i(327));var r=!n&&!(t&127)&&(t&e.expiredLanes)===0||st(e,t),a=r?Jd(e,t):Kd(e,t,!0),o=r;do{if(a===0){X&&!r&&Ld(e,t,0,!1);break}if(n=e.current.alternate,o&&!Id(n))a=Kd(e,t,!1),o=!1;else{if(a===2){if(o=t,e.errorRecoveryDisabledLanes&o)var s=0;else s=e.pendingLanes&-536870913,s=s===0?s&536870912?536870912:0:s;if(s!==0){t=s;a:{var c=e;a=ud;var l=c.current.memoizedState.isDehydrated;if(l&&(Bd(c,s).flags|=256),s=Kd(c,s,!1),s!==2&&s!==6){if(Z&&!l){c.errorRecoveryDisabledLanes|=o,od|=o,a=4;break a}o=dd,dd=a,o!==null&&(dd===null?dd=o:dd.push.apply(dd,o))}a=s}if(o=!1,a!==2)continue}}if(a===1){Bd(e,0),Ld(e,t,0,!0);break}a:{switch(r=e,o=a,o){case 0:case 1:throw Error(i(345));case 4:if((t&4194048)!==t&&(t&62914560)!==t)break;case 6:Ld(r,t,cd,!Y);break a;case 2:dd=null;break;case 3:case 5:break;default:throw Error(i(329))}if((t&62914560)===t&&(a=pd+300-Be(),10<a)){if(Ld(r,t,cd,!Y),ot(r,0,!0)!==0)break a;xd=t,r.timeoutHandle=gp(Fd.bind(null,r,n,dd,gd,fd,t,cd,od,ld,Y,o,`Throttled`,-0,0),a);break a}Fd(r,n,dd,gd,fd,t,cd,od,ld,Y,o,null,-0,0)}break}}while(1);Tf(e)}function Fd(e,t,n,r,i,a,o,s,c,l,u,d,f,p){e.timeoutHandle=-1;var m=t.subtreeFlags,h=(a&335544064)===a;d=null,(h||m&8192||(m&16785408)==16785408)&&(d={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:vn},Ul=null,Ku(t,a,d),h&&(m=d,h=e.containerInfo,h=(h.nodeType===9?h:h.ownerDocument).__reactViewTransition,h!=null&&(m.count++,m.waitingForViewTransition=!0,m=nh.bind(m),h.finished.then(m,m))),m=(a&62914560)===a?pd-Be():(a&4194048)===a?md-Be():0,m=eh(d,m),m!==null)?(xd=a,e.cancelPendingCommit=m(tf.bind(null,e,t,a,n,r,i,o,s,c,l,u,d,null,f,p)),Ld(e,a,o,!l)):tf(e,t,a,n,r,i,o,s,c,l,u,d)}function Id(e){for(var t=e;;){var n=t.tag;if((n===0||n===11||n===15)&&t.flags&16384&&(n=t.updateQueue,n!==null&&(n=n.stores,n!==null)))for(var r=0;r<n.length;r++){var i=n[r],a=i.getSnapshot;i=i.value;try{if(!Vr(a(),i))return!1}catch{return!1}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function Ld(e,t,n,r){t=ct(e,t),t&=~sd,t&=~od,e.suspendedLanes|=t,e.pingedLanes&=~t,r&&(e.warmLanes|=t),r=e.expirationTimes;for(var i=t;0<i;){var a=31-Qe(i),o=1<<a;r[a]=-1,i&=~o}n!==0&&mt(e,n,t)}function Rd(){return K&6?!0:(Ef(0,!1),!1)}function zd(){if(q!==null){if(td===0)var e=q.return;else e=q,_a=ga=null,os(e),ao=null,oo=0,e=q;for(;e!==null;)Cl(e.alternate,e),e=e.return;q=null}}function Bd(e,t){var n=e.timeoutHandle;return n!==-1&&(e.timeoutHandle=-1,_p(n)),n=e.cancelPendingCommit,n!==null&&(e.cancelPendingCommit=null,n()),xd=0,zd(),ed=e,q=n=Pi(e.current,null),J=t,td=0,nd=null,Y=!1,X=st(e,t),Z=!1,ld=cd=sd=od=ad=id=0,dd=ud=null,fd=!1,rd=ct(e,t),wi(),n}function Vd(e,t){V=null,N.H=gc,t===Ya||t===Za?(t=ro(),td=3):t===Xa?(t=ro(),td=4):td=t===Pc?8:typeof t==`object`&&t&&typeof t.then==`function`?6:1,nd=t,q===null&&(id=1,Oc(e,Hi(t,e.current)))}function Hd(){var e=jo.current;return e===null?!0:(J&4194048)===J?Mo===null:(J&62914560)===J||J&536870912?e===Mo:!1}function Ud(){var e=N.H;return N.H=gc,e===null?gc:e}function Wd(){var e=N.A;return N.A=Qu,e}function Gd(){id=4,Y||(J&4194048)!==J&&jo.current!==null||(X=!0),!(ad&134217727)&&!(od&134217727)||ed===null||Ld(ed,J,cd,!1)}function Kd(e,t,n){var r=K;K|=2;var i=Ud(),a=Wd();(ed!==e||J!==t)&&(gd=null,Bd(e,t)),t=!1;var o=id;a:do try{if(td!==0&&q!==null){var s=q,c=nd;switch(td){case 8:zd(),o=6;break a;case 3:case 2:case 9:case 6:jo.current===null&&(t=!0);var l=td;if(td=0,nd=null,Qd(e,s,c,l),n&&X){o=0;break a}break;default:l=td,td=0,nd=null,Qd(e,s,c,l)}}qd(),o=id;break}catch(t){Vd(e,t)}while(1);return t&&e.shellSuspendCounter++,_a=ga=null,K=r,N.H=i,N.A=a,q===null&&(ed=null,J=0,wi()),o}function qd(){for(;q!==null;)Xd(q)}function Jd(e,t){var n=K;K|=2;var r=Ud(),a=Wd();ed!==e||J!==t?(gd=null,hd=Be()+500,Bd(e,t)):X=st(e,t);a:do try{if(td!==0&&q!==null){t=q;var o=nd;b:switch(td){case 1:td=0,nd=null,Qd(e,t,o,1);break;case 2:case 9:if($a(o)){td=0,nd=null,Zd(t);break}t=function(){td!==2&&td!==9||ed!==e||(td=7),Tf(e)},o.then(t,t);break a;case 3:td=7;break a;case 4:td=5;break a;case 7:$a(o)?(td=0,nd=null,Zd(t)):(td=0,nd=null,Qd(e,t,o,7));break;case 5:var s=null;switch(q.tag){case 26:s=q.memoizedState;case 5:case 27:var c=q;if(s?Ym(s):c.stateNode.complete){td=0,nd=null;var l=c.sibling;if(l!==null)q=l;else{var u=c.return;u===null?q=null:(q=u,$d(u))}break b}}td=0,nd=null,Qd(e,t,o,5);break;case 6:td=0,nd=null,Qd(e,t,o,6);break;case 8:zd(),id=6;break a;default:throw Error(i(462))}}Yd();break}catch(t){Vd(e,t)}while(1);return _a=ga=null,N.H=r,N.A=a,K=n,q===null?(ed=null,J=0,wi(),id):0}function Yd(){for(;q!==null&&!Re();)Xd(q)}function Xd(e){var t=ml(e.alternate,e,rd);e.memoizedProps=e.pendingProps,t===null?$d(e):q=t}function Zd(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=Jc(n,t,t.pendingProps,t.type,void 0,J);break;case 11:t=Jc(n,t,t.pendingProps,t.type.render,t.ref,J);break;case 5:os(t);var r=t;r===ra&&(B?(ua(r),r.tag===5&&r.stateNode!=null&&(ia=r.stateNode)):(ua(r),B=!0));default:Cl(n,t),t=q=Fi(t,rd),t=ml(n,t,rd)}e.memoizedProps=e.pendingProps,t===null?$d(e):q=t}function Qd(e,t,n,r){_a=ga=null,os(t),ao=null,oo=0;var i=t.return;try{if(Nc(e,i,t,n,J)){id=1,Oc(e,Hi(n,e.current)),q=null;return}}catch(t){if(i!==null)throw q=i,t;id=1,Oc(e,Hi(n,e.current)),q=null;return}t.flags&32768?(B||r===1?e=!0:X||J&536870912?e=!1:(Y=e=!0,(r===2||r===9||r===3||r===6)&&(r=jo.current,r!==null&&r.tag===13&&(r.flags|=16384))),ef(t,e)):$d(t)}function $d(e){var t=e;do{if(t.flags&32768){ef(t,Y);return}e=t.return;var n=xl(t.alternate,t,rd);if(n!==null){q=n;return}if(t=t.sibling,t!==null){q=t;return}q=t=e}while(t!==null);id===0&&(id=5)}function ef(e,t){do{var n=Sl(e.alternate,e);if(n!==null){n.flags&=32767,q=n;return}if(n=e.return,n!==null&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&(e=e.sibling,e!==null)){q=e;return}q=e=n}while(e!==null);id=6,q=null}function tf(e,t,n,r,a,o,s,c,l,u,d,f){e.cancelPendingCommit=null;do uf();while(vd!==0);if(K&6)throw Error(i(327));if(t!==null){if(t===e.current)throw Error(i(177));e===ed&&(q=ed=null,J=0),bd=t,yd=e,xd=n,Cd=a,wd=r,nf(e,t,n,s,c,l,f)}}function nf(e,t,n,r,i,a,o){var s=t.lanes|t.childLanes;if(Sd=s,s|=Ci,pt(e,n,s,r,i,a),Ed=null,(n&335544064)===n?(Dd=Ia(e),r=10262):(Dd=null,r=10256),(t.subtreeFlags&r)!==0||(t.flags&r)!==0?(e.callbackNode=null,e.callbackPriority=0,yf(We,function(){return df(),null})):(e.callbackNode=null,e.callbackPriority=0),Hl=!1,r=!!(t.flags&13878),t.subtreeFlags&13878||r){r=N.T,N.T=null,i=P.p,P.p=2,a=K,K|=4;try{hu(e,t,n)}finally{K=a,P.p=i,N.T=r}}vd=1,Hl?Td=Mp(o,e.containerInfo,Dd,of,sf,af,cf,df,rf,null,null):(of(),sf(),cf())}function rf(e){if(vd!==0){var t=yd.onRecoverableError;t(e,{componentStack:null})}}function af(){vd===3&&(vd=0,G(bd,yd),vd=4)}function of(){if(vd===1){vd=0;var e=yd,t=bd,n=xd,r=!!(t.flags&13878);if(t.subtreeFlags&13878||r){r=N.T,N.T=null;var i=P.p;P.p=2;var a=K;K|=4;try{fu=pu=!1,ju(t,e,n),n=cp;var o=qr(e.containerInfo),s=n.focusedElem,c=n.selectionRange;if(o!==s&&s&&s.ownerDocument&&Kr(s.ownerDocument.documentElement,s)){if(c!==null&&Jr(s)){var l=c.start,u=c.end;if(u===void 0&&(u=l),`selectionStart`in s)s.selectionStart=l,s.selectionEnd=Math.min(u,s.value.length);else{var d=s.ownerDocument||document,f=d&&d.defaultView||window;if(f.getSelection){var p=f.getSelection(),m=s.textContent.length,h=Math.min(c.start,m),g=c.end===void 0?h:Math.min(c.end,m);!p.extend&&h>g&&(o=g,g=h,h=o);var _=Gr(s,h),v=Gr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;s<d.length;s++){var b=d[s];b.element.scrollLeft=b.left,b.element.scrollTop=b.top}}gh=!!sp,cp=sp=null}finally{K=a,P.p=i,N.T=r}}e.current=t,vd=2}}function sf(){if(vd===2){vd=0;var e=yd,t=bd,n=!!(t.flags&8772);if(t.subtreeFlags&8772||n){n=N.T,N.T=null;var r=P.p;P.p=2;var i=K;K|=4;try{W(e,t.alternate,t)}finally{K=i,P.p=r,N.T=n}}vd=3}}function cf(){if(vd===4||vd===3){vd=0;var e=Td;Td=null,ze();var t=yd,n=bd,r=xd,i=wd,a=(r&335544064)===r?10262:10256;if((n.subtreeFlags&a)!==0||(n.flags&a)!==0?vd=5:(vd=0,bd=yd=null,lf(t,t.pendingLanes)),a=t.pendingLanes,a===0&&(_d=null),vt(r),n=n.stateNode,Xe&&typeof Xe.onCommitFiberRoot==`function`)try{Xe.onCommitFiberRoot(Ye,n,void 0,(n.current.flags&128)==128)}catch{}if(i!==null){n=N.T,a=P.p,P.p=2,N.T=null;try{for(var o=t.onRecoverableError,s=0;s<i.length;s++){var c=i[s];o(c.value,{componentStack:c.stack})}}finally{N.T=n,P.p=a}}if(i=Ed,o=Dd,Dd=null,i!==null&&(Ed=null,o===null&&(o=[]),e!==null))for(c=0;c<i.length;c++)n=(0,i[c])(o),n!==void 0&&e.finished.finally(n);xd&3&&uf(),Tf(t),a=t.pendingLanes,r&261930&&a&42?t===kd?Od++:(Od=0,kd=t):(Od=0,kd=null),Ef(0,!1)}}function lf(e,t){(e.pooledCacheLanes&=t)===0&&(t=e.pooledCache,t!=null&&(e.pooledCache=null,Na(t)))}function uf(){return Td!==null&&(Td.skipTransition(),Td=null),of(),sf(),cf(),df()}function df(){if(vd!==5)return!1;var e=yd,t=Sd;Sd=0;var n=vt(xd),r=N.T,a=P.p;try{P.p=32>n?32:n,N.T=null,n=Cd,Cd=null;var o=yd,s=xd;if(vd=0,bd=yd=null,xd=0,K&6)throw Error(i(331));var c=K;if(K|=4,Yu(o.current),Vu(o,o.current,s,n),K=c,Ef(0,!1),Xe&&typeof Xe.onPostCommitFiberRoot==`function`)try{Xe.onPostCommitFiberRoot(Ye,o)}catch{}return!0}finally{P.p=a,N.T=r,lf(e,t)}}function ff(e,t,n){t=Hi(n,t),t=Ac(e.stateNode,t,2),e=vo(e,t,2),e!==null&&(ft(e,2),Tf(e))}function pf(e,t,n){if(e.tag===3)ff(e,e,n);else for(;t!==null;){if(t.tag===3){ff(t,e,n);break}if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(_d===null||!_d.has(r))){e=Hi(n,e),n=jc(2),r=vo(t,n,2),r!==null&&(Mc(n,r,t,e),ft(r,2),Tf(r));break}}t=t.return}}function mf(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new $u;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(Z=!0,i.add(n),e=hf.bind(null,e,t,n),t.then(e,e))}function hf(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,ed===e&&(J&n)===n&&(id===4||id===3&&(J&62914560)===J&&300>Be()-pd?K&2?sd|=n:Bd(e,0):sd|=n,ld===J&&(ld=0)),Tf(e)}function gf(e,t){t===0&&(t=ut()),e=Di(e,t),e!==null&&(ft(e,t),Tf(e))}function _f(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),gf(e,n)}function vf(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}r!==null&&r.delete(t),gf(e,n)}function yf(e,t){return Le(e,t)}var bf=null,xf=null,Sf=!1,Cf=!1,wf=!1,Q=0;function Tf(e){e!==xf&&e.next===null&&(xf===null?bf=xf=e:xf=xf.next=e),Cf=!0,Sf||(Sf=!0,Mf())}function Ef(e,t){if(!wf&&Cf){wf=!0;do for(var n=!1,r=bf;r!==null;){if(!t){if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-Qe(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,jf(r,a))}else a=J,a=ot(r,r===ed?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||st(r,a)||(n=!0,jf(r,a))}r=r.next}while(n);wf=!1}}function Df(){Of()}function Of(){Cf=Sf=!1;var e=0;Q!==0&&hp()&&(e=Q);for(var t=Be(),n=null,r=bf;r!==null;){var i=r.next,a=kf(r,t);a===0?(r.next=null,n===null?bf=i:n.next=i,i===null&&(xf=n)):(n=r,(e!==0||a&3)&&(Cf=!0)),r=i}vd!==0&&vd!==5||Ef(e,!1),Q!==0&&(Q=0)}function kf(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0<a;){var o=31-Qe(a),s=1<<o,c=i[o];c===-1?((s&n)===0||(s&r)!==0)&&(i[o]=lt(s,t)):c<=t&&(e.expiredLanes|=s),a&=~s}if(t=ed,n=J,n=ot(e,e===t?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r=e.callbackNode,n===0||e===t&&(td===2||td===9)||e.cancelPendingCommit!==null)return r!==null&&r!==null&&R(r),e.callbackNode=null,e.callbackPriority=0;if(!(n&3)||st(e,n)){if(t=n&-n,t===e.callbackPriority)return t;switch(r!==null&&R(r),vt(n)){case 2:case 8:n=Ue;break;case 32:n=We;break;case 268435456:n=Ke;break;default:n=We}return r=Af.bind(null,e),n=Le(n,r),e.callbackPriority=t,e.callbackNode=n,t}return r!==null&&r!==null&&R(r),e.callbackPriority=2,e.callbackNode=null,2}function Af(e,t){if(vd!==0&&vd!==5)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(uf()&&e.callbackNode!==n)return null;var r=J;return r=ot(e,e===ed?r:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r===0?null:(Pd(e,r,t),kf(e,Be()),e.callbackNode!=null&&e.callbackNode===n?Af.bind(null,e):null)}function jf(e,t){if(uf())return null;Pd(e,t,!0)}function Mf(){bp(function(){K&6?Le(He,Df):Of()})}function Nf(){if(Q===0){var e=za;e===0&&(e=nt,nt<<=1,!(nt&261888)&&(nt=256)),Q=e}return Q}function Pf(e){return e==null||typeof e==`symbol`||typeof e==`boolean`?null:typeof e==`function`?e:_n(e)}function Ff(e,t,n,r,i){if(t===`submit`&&n&&n.stateNode===i){var a=Pf((i[Ct]||null).action),o=r.submitter;o&&(t=(t=o[Ct]||null)?Pf(t.formAction):o.getAttribute(`formAction`),t!==null&&(a=t,o=null));var s=new zn(`action`,`action`,null,r,i);e.push({event:s,listeners:[{instance:null,listener:function(){if(r.defaultPrevented){if(Q!==0){var e=new FormData(i,o);nc(n,{pending:!0,data:e,method:i.method,action:a},null,e)}}else typeof a==`function`&&(s.preventDefault(),e=new FormData(i,o),nc(n,{pending:!0,data:e,method:i.method,action:a},a,e))},currentTarget:i}]})}}for(var If=0;If<mi.length;If++){var Lf=mi[If];hi(Lf.toLowerCase(),`on`+(Lf[0].toUpperCase()+Lf.slice(1)))}hi(oi,`onAnimationEnd`),hi(si,`onAnimationIteration`),hi(ci,`onAnimationStart`),hi(`dblclick`,`onDoubleClick`),hi(`focusin`,`onFocus`),hi(`focusout`,`onBlur`),hi(li,`onTransitionRun`),hi(ui,`onTransitionStart`),hi(di,`onTransitionCancel`),hi(fi,`onTransitionEnd`),Vt(`onMouseEnter`,[`mouseout`,`mouseover`]),Vt(`onMouseLeave`,[`mouseout`,`mouseover`]),Vt(`onPointerEnter`,[`pointerout`,`pointerover`]),Vt(`onPointerLeave`,[`pointerout`,`pointerover`]),Bt(`onChange`,`change click focusin focusout input keydown keyup selectionchange`.split(` `)),Bt(`onSelect`,`focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange`.split(` `)),Bt(`onBeforeInput`,[`compositionend`,`keypress`,`textInput`,`paste`]),Bt(`onCompositionEnd`,`compositionend focusout keydown keypress keyup mousedown`.split(` `)),Bt(`onCompositionStart`,`compositionstart focusout keydown keypress keyup mousedown`.split(` `)),Bt(`onCompositionUpdate`,`compositionupdate focusout keydown keypress keyup mousedown`.split(` `));var Rf=`abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting`.split(` `),zf=new Set(`beforetoggle cancel close invalid load scroll scrollend toggle`.split(` `).concat(Rf));function Bf(e,t){t=!!(t&4);for(var n=0;n<e.length;n++){var r=e[n],i=r.event;r=r.listeners;a:{var a=void 0;if(t)for(var o=r.length-1;0<=o;o--){var s=r[o],c=s.instance,l=s.currentTarget;if(s=s.listener,c!==a&&i.isPropagationStopped())break a;a=s,i.currentTarget=l;try{a(i)}catch(e){bi(e)}i.currentTarget=null,a=c}else for(o=0;o<r.length;o++){if(s=r[o],c=s.instance,l=s.currentTarget,s=s.listener,c!==a&&i.isPropagationStopped())break a;a=s,i.currentTarget=l;try{a(i)}catch(e){bi(e)}i.currentTarget=null,a=c}}}}function $(e,t){var n=t[Tt];n===void 0&&(n=t[Tt]=new Set);var r=e+`__bubble`;n.has(r)||(Wf(t,e,2,!1),n.add(r))}function Vf(e,t,n){var r=0;t&&(r|=4),Wf(n,e,r,t)}var Hf=`_reactListening`+Math.random().toString(36).slice(2);function Uf(e){if(!e[Hf]){e[Hf]=!0,Rt.forEach(function(t){t!==`selectionchange`&&(zf.has(t)||Vf(t,!1,e),Vf(t,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[Hf]||(t[Hf]=!0,Vf(`selectionchange`,!1,t))}}function Wf(e,t,n,r){switch(Ch(t)){case 2:var i=_h;break;case 8:i=vh;break;default:i=yh}n=i.bind(null,t,n,e),i=void 0,!On||t!==`touchstart`&&t!==`touchmove`&&t!==`wheel`||(i=!0),r?i===void 0?e.addEventListener(t,n,!0):e.addEventListener(t,n,{capture:!0,passive:i}):i===void 0?e.addEventListener(t,n,!1):e.addEventListener(t,n,{passive:i})}function Gf(e,t,n,r,i){var a=r;if(!(t&1)&&!(t&2)&&r!==null)a:for(;;){if(r===null)return;var s=r.tag;if(s===3||s===4){var c=r.stateNode.containerInfo;if(c===i)break;if(s===4)for(s=r.return;s!==null;){var l=s.tag;if((l===3||l===4)&&s.stateNode.containerInfo===i)return;s=s.return}for(;c!==null;){if(s=Mt(c),s===null)return;if(l=s.tag,l===5||l===6||l===26||l===27){r=a=s;continue a}c=c.parentNode}}r=r.return}Tn(function(){var r=a,i=bn(n),s=[];a:{var c=pi.get(e);if(c!==void 0){var l=zn,u=e;switch(e){case`keypress`:if(Pn(n)===0)break a;case`keydown`:case`keyup`:l=rr;break;case`focusin`:u=`focus`,l=Jn;break;case`focusout`:u=`blur`,l=Jn;break;case`beforeblur`:case`afterblur`:l=Jn;break;case`click`:if(n.button===2)break a;case`auxclick`:case`dblclick`:case`mousedown`:case`mousemove`:case`mouseup`:case`mouseout`:case`mouseover`:case`contextmenu`:l=Kn;break;case`drag`:case`dragend`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`dragstart`:case`drop`:l=qn;break;case`touchcancel`:case`touchend`:case`touchmove`:case`touchstart`:l=or;break;case oi:case si:case ci:l=Yn;break;case fi:l=sr;break;case`scroll`:case`scrollend`:l=Vn;break;case`wheel`:l=cr;break;case`copy`:case`cut`:case`paste`:l=Xn;break;case`gotpointercapture`:case`lostpointercapture`:case`pointercancel`:case`pointerdown`:case`pointermove`:case`pointerout`:case`pointerover`:case`pointerup`:l=ir;break;case`submit`:l=ar;break;case`toggle`:case`beforetoggle`:l=lr}var d=!!(t&4),f=!d&&(e===`scroll`||e===`scrollend`),p=d?c===null?null:c+`Capture`:c;d=[];for(var m=r,h;m!==null;){var g=m;if(h=g.stateNode,g=g.tag,g!==5&&g!==26&&g!==27||h===null||p===null||(g=En(m,p),g!=null&&d.push(Kf(m,g,h))),f)break;m=m.return}0<d.length&&(c=new l(c,u,null,n,i),s.push({event:c,listeners:d}))}}if(!(t&7)){a:{if(l=e===`mouseover`||e===`pointerover`,c=e===`mouseout`||e===`pointerout`,l&&n!==yn&&(u=n.relatedTarget||n.fromElement)&&(Mt(u)||u[wt]))break a;(c||l)&&(u=i.window===i?i:(l=i.ownerDocument)?l.defaultView||l.parentWindow:window,c?(l=n.relatedTarget||n.toElement,c=r,l=l?Mt(l):null,l!==null&&(f=o(l),d=l.tag,l!==f||d!==5&&d!==27&&d!==6)&&(l=null)):(c=null,l=r),c!==l&&(d=Kn,g=`onMouseLeave`,p=`onMouseEnter`,m=`mouse`,(e===`pointerout`||e===`pointerover`)&&(d=ir,g=`onPointerLeave`,p=`onPointerEnter`,m=`pointer`),f=c==null?u:Pt(c),h=l==null?u:Pt(l),u=new d(g,m+`leave`,c,n,i),u.target=f,u.relatedTarget=h,g=null,Mt(i)===r&&(d=new d(p,m+`enter`,l,n,i),d.target=h,d.relatedTarget=f,g=d),f=g,d=c&&l?E(c,l,Jf):null,c!==null&&Yf(s,u,c,d,!1),l!==null&&f!==null&&Yf(s,f,l,d,!0)))}a:{if(c=r?Pt(r):window,l=c.nodeName&&c.nodeName.toLowerCase(),l===`select`||l===`input`&&c.type===`file`)var _=kr;else if(Cr(c)){if(Ar)_=zr;else{_=Lr;var v=Ir}}else l=c.nodeName,!l||l.toLowerCase()!==`input`||c.type!==`checkbox`&&c.type!==`radio`?r&&mn(r.elementType)&&(_=kr):_=Rr;if(_&&=_(e,r)){wr(s,_,n,i);break a}v&&v(e,c,r)}switch(v=r?Pt(r):window,e){case`focusin`:(Cr(v)||v.contentEditable===`true`)&&(Xr=v,Zr=r,Qr=null);break;case`focusout`:Qr=Zr=Xr=null;break;case`mousedown`:$r=!0;break;case`contextmenu`:case`mouseup`:case`dragend`:$r=!1,ei(s,n,i);break;case`selectionchange`:if(Yr)break;case`keydown`:case`keyup`:ei(s,n,i)}var y;if(dr)b:{switch(e){case`compositionstart`:var b=`onCompositionStart`;break b;case`compositionend`:b=`onCompositionEnd`;break b;case`compositionupdate`:b=`onCompositionUpdate`;break b}b=void 0}else yr?_r(e,n)&&(b=`onCompositionEnd`):e===`keydown`&&n.keyCode===229&&(b=`onCompositionStart`);b&&(mr&&n.locale!==`ko`&&(yr||b!==`onCompositionStart`?b===`onCompositionEnd`&&yr&&(y=Nn()):(An=i,jn=`value`in An?An.value:An.textContent,yr=!0)),v=qf(r,b),0<v.length&&(b=new Zn(b,e,null,n,i),s.push({event:b,listeners:v}),y?b.data=y:(y=vr(n),y!==null&&(b.data=y)))),(y=pr?br(e,n):xr(e,n))&&(b=qf(r,`onBeforeInput`),0<b.length&&(v=new Zn(`onBeforeInput`,`beforeinput`,null,n,i),s.push({event:v,listeners:b}),v.data=y)),Ff(s,e,r,n,i)}Bf(s,t)})}function Kf(e,t,n){return{instance:e,listener:t,currentTarget:n}}function qf(e,t){for(var n=t+`Capture`,r=[];e!==null;){var i=e,a=i.stateNode;if(i=i.tag,i!==5&&i!==26&&i!==27||a===null||(i=En(e,n),i!=null&&r.unshift(Kf(e,i,a)),i=En(e,t),i!=null&&r.push(Kf(e,i,a))),e.tag===3)return r;e=e.return}return[]}function Jf(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function Yf(e,t,n,r,i){for(var a=t._reactName,o=[];n!==null&&n!==r;){var s=n,c=s.alternate,l=s.stateNode;if(s=s.tag,c!==null&&c===r)break;s!==5&&s!==26&&s!==27||l===null||(c=l,i?(l=En(n,a),l!=null&&o.unshift(Kf(n,l,c))):i||(l=En(n,a),l!=null&&o.push(Kf(n,l,c)))),n=n.return}o.length!==0&&e.push({event:t,listeners:o})}var Xf=/\\r\\n?/g,Zf=/\\u0000|\\uFFFD/g;function Qf(e){return(typeof e==`string`?e:``+e).replace(Xf,`\n`).replace(Zf,``)}function $f(e,t){return t=Qf(t),Qf(e)===t}function ep(e,t,n,r,a,o){switch(n){case`children`:if(typeof r==`string`)t===`body`||t===`textarea`&&r===``||un(e,r);else if(typeof r==`number`||typeof r==`bigint`)t!==`body`&&un(e,``+r);else return;break;case`className`:Jt(e,`class`,r);break;case`tabIndex`:Jt(e,`tabindex`,r);break;case`dir`:case`role`:case`viewBox`:case`width`:case`height`:Jt(e,n,r);break;case`style`:pn(e,r,o);return;case`data`:if(t!==`object`){Jt(e,`data`,r);break}case`src`:case`href`:if(r===``&&(t!==`a`||n!==`href`)||r==null||typeof r==`function`||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=_n(r),e.setAttribute(n,r);break;case`action`:case`formAction`:if(typeof r==`function`){e.setAttribute(n,`javascript:throw new Error(\'A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\\\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().\')`);break}if(typeof o==`function`&&(n===`formAction`?(t!==`input`&&ep(e,t,`name`,a.name,a,null),ep(e,t,`formEncType`,a.formEncType,a,null),ep(e,t,`formMethod`,a.formMethod,a,null),ep(e,t,`formTarget`,a.formTarget,a,null)):(ep(e,t,`encType`,a.encType,a,null),ep(e,t,`method`,a.method,a,null),ep(e,t,`target`,a.target,a,null))),r==null||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=_n(r),e.setAttribute(n,r);break;case`onClick`:r!=null&&(e.onclick=vn);return;case`onScroll`:r!=null&&$(`scroll`,e);return;case`onScrollEnd`:r!=null&&$(`scrollend`,e);return;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(i(61));if(n=r.__html,n!=null){if(a.children!=null)throw Error(i(60));o?.__html!==n&&(e.innerHTML=n)}}break;case`multiple`:e.multiple=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`muted`:e.muted=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`defaultValue`:case`defaultChecked`:case`innerHTML`:case`ref`:break;case`autoFocus`:break;case`xlinkHref`:if(r==null||typeof r==`function`||typeof r==`boolean`||typeof r==`symbol`){e.removeAttribute(`xlink:href`);break}n=_n(r),e.setAttributeNS(`http://www.w3.org/1999/xlink`,`xlink:href`,n);break;case`contentEditable`:case`spellCheck`:case`draggable`:case`value`:case`autoReverse`:case`externalResourcesRequired`:case`focusable`:case`preserveAlpha`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,r):e.removeAttribute(n);break;case`inert`:case`allowFullScreen`:case`async`:case`autoPlay`:case`controls`:case`credentialless`:case`default`:case`defer`:case`disabled`:case`disablePictureInPicture`:case`disableRemotePlayback`:case`formNoValidate`:case`hidden`:case`loop`:case`noModule`:case`noValidate`:case`open`:case`playsInline`:case`readOnly`:case`required`:case`reversed`:case`scoped`:case`seamless`:case`itemScope`:r&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``):e.removeAttribute(n);break;case`capture`:case`download`:!0===r?e.setAttribute(n,``):!1!==r&&r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,r):e.removeAttribute(n);break;case`cols`:case`rows`:case`size`:case`span`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`&&!isNaN(r)&&1<=r?e.setAttribute(n,r):e.removeAttribute(n);break;case`rowSpan`:case`start`:r==null||typeof r==`function`||typeof r==`symbol`||isNaN(r)?e.removeAttribute(n):e.setAttribute(n,r);break;case`popover`:$(`beforetoggle`,e),$(`toggle`,e),qt(e,`popover`,r);break;case`xlinkActuate`:Yt(e,`http://www.w3.org/1999/xlink`,`xlink:actuate`,r);break;case`xlinkArcrole`:Yt(e,`http://www.w3.org/1999/xlink`,`xlink:arcrole`,r);break;case`xlinkRole`:Yt(e,`http://www.w3.org/1999/xlink`,`xlink:role`,r);break;case`xlinkShow`:Yt(e,`http://www.w3.org/1999/xlink`,`xlink:show`,r);break;case`xlinkTitle`:Yt(e,`http://www.w3.org/1999/xlink`,`xlink:title`,r);break;case`xlinkType`:Yt(e,`http://www.w3.org/1999/xlink`,`xlink:type`,r);break;case`xmlBase`:Yt(e,`http://www.w3.org/XML/1998/namespace`,`xml:base`,r);break;case`xmlLang`:Yt(e,`http://www.w3.org/XML/1998/namespace`,`xml:lang`,r);break;case`xmlSpace`:Yt(e,`http://www.w3.org/XML/1998/namespace`,`xml:space`,r);break;case`is`:qt(e,`is`,r);break;case`innerText`:case`textContent`:return;default:if(!(2<n.length)||n[0]!==`o`&&n[0]!==`O`||n[1]!==`n`&&n[1]!==`N`)n=hn.get(n)||n,qt(e,n,r);else return}z=!0}function tp(e,t,n,r,a,o){switch(n){case`style`:pn(e,r,o);return;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(i(61));if(n=r.__html,n!=null){if(a.children!=null)throw Error(i(60));o?.__html!==n&&(e.innerHTML=n)}}break;case`children`:if(typeof r==`string`)un(e,r);else if(typeof r==`number`||typeof r==`bigint`)un(e,``+r);else return;break;case`onScroll`:r!=null&&$(`scroll`,e);return;case`onScrollEnd`:r!=null&&$(`scrollend`,e);return;case`onClick`:r!=null&&(e.onclick=vn);return;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`innerHTML`:case`ref`:return;case`innerText`:case`textContent`:return;default:if(!zt.hasOwnProperty(n))a:{if(n[0]===`o`&&n[1]===`n`&&(a=n.endsWith(`Capture`),o=n.slice(2,a?n.length-7:void 0),t=e[Ct]||null,t=t==null?null:t[n],typeof t==`function`&&e.removeEventListener(o,t,a),typeof r==`function`)){typeof t!=`function`&&t!==null&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(o,r,a);break a}z=!0,n in e?e[n]=r:!0===r?e.setAttribute(n,``):qt(e,n,r)}return}z=!0}function np(e,t,n){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`img`:$(`error`,e),$(`load`,e);var r=!1,a=!1,o;for(o in n)if(n.hasOwnProperty(o)){var s=n[o];if(s!=null)switch(o){case`src`:r=!0;break;case`srcSet`:a=!0;break;case`children`:case`dangerouslySetInnerHTML`:throw Error(i(137,t));default:ep(e,t,o,s,n,null)}}a&&ep(e,t,`srcSet`,n.srcSet,n,null),r&&ep(e,t,`src`,n.src,n,null);return;case`input`:$(`invalid`,e);var c=o=s=a=null,l=null,u=null;for(r in n)if(n.hasOwnProperty(r)){var d=n[r];if(d!=null)switch(r){case`name`:a=d;break;case`type`:s=d;break;case`checked`:l=d;break;case`defaultChecked`:u=d;break;case`value`:o=d;break;case`defaultValue`:c=d;break;case`children`:case`dangerouslySetInnerHTML`:if(d!=null)throw Error(i(137,t));break;default:ep(e,t,r,d,n,null)}}an(e,o,c,l,u,s,a,!1);return;case`select`:for(a in $(`invalid`,e),r=s=o=null,n)if(n.hasOwnProperty(a)&&(c=n[a],c!=null))switch(a){case`value`:o=c;break;case`defaultValue`:s=c;break;case`multiple`:r=c;default:ep(e,t,a,c,n,null)}t=o,n=s,e.multiple=!!r,t==null?n!=null&&sn(e,!!r,n,!0):sn(e,!!r,t,!1);return;case`textarea`:for(s in $(`invalid`,e),o=a=r=null,n)if(n.hasOwnProperty(s)&&(c=n[s],c!=null))switch(s){case`value`:r=c;break;case`defaultValue`:a=c;break;case`children`:o=c;break;case`dangerouslySetInnerHTML`:if(c!=null)throw Error(i(91));break;default:ep(e,t,s,c,n,null)}ln(e,r,a,o);return;case`option`:for(l in n)if(n.hasOwnProperty(l)&&(r=n[l],r!=null))switch(l){case`selected`:e.selected=r&&typeof r!=`function`&&typeof r!=`symbol`;break;default:ep(e,t,l,r,n,null)}return;case`dialog`:$(`beforetoggle`,e),$(`toggle`,e),$(`cancel`,e),$(`close`,e);break;case`iframe`:case`object`:$(`load`,e);break;case`video`:case`audio`:for(r=0;r<Rf.length;r++)$(Rf[r],e);break;case`image`:$(`error`,e),$(`load`,e);break;case`details`:$(`toggle`,e);break;case`embed`:case`source`:case`link`:$(`error`,e),$(`load`,e);case`area`:case`base`:case`br`:case`col`:case`hr`:case`keygen`:case`meta`:case`param`:case`track`:case`wbr`:case`menuitem`:for(u in n)if(n.hasOwnProperty(u)&&(r=n[u],r!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:throw Error(i(137,t));default:ep(e,t,u,r,n,null)}return;default:if(mn(t)){for(d in n)n.hasOwnProperty(d)&&(r=n[d],r!==void 0&&tp(e,t,d,r,n,void 0));return}}for(c in n)n.hasOwnProperty(c)&&(r=n[c],r!=null&&ep(e,t,c,r,n,null))}var rp={};function ip(e,t,n,r){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`input`:var a=null,o=null,s=null,c=null,l=null,u=null,d=null;for(m in n){var f=n[m];if(n.hasOwnProperty(m)&&f!=null)switch(m){case`checked`:break;case`value`:break;case`defaultValue`:l=f;default:r.hasOwnProperty(m)||ep(e,t,m,null,r,f)}}for(var p in r){var m=r[p];if(f=n[p],r.hasOwnProperty(p)&&(m!=null||f!=null))switch(p){case`type`:m!==f&&(z=!0),o=m;break;case`name`:m!==f&&(z=!0),a=m;break;case`checked`:m!==f&&(z=!0),u=m;break;case`defaultChecked`:m!==f&&(z=!0),d=m;break;case`value`:m!==f&&(z=!0),s=m;break;case`defaultValue`:m!==f&&(z=!0),c=m;break;case`children`:case`dangerouslySetInnerHTML`:if(m!=null)throw Error(i(137,t));break;default:m!==f&&ep(e,t,p,m,r,f)}}rn(e,s,c,l,u,d,o,a);return;case`select`:for(o in m=s=c=p=null,n)if(l=n[o],n.hasOwnProperty(o)&&l!=null)switch(o){case`value`:break;case`multiple`:m=l;default:r.hasOwnProperty(o)||ep(e,t,o,null,r,l)}for(a in r)if(o=r[a],l=n[a],r.hasOwnProperty(a)&&(o!=null||l!=null))switch(a){case`value`:o!==l&&(z=!0),p=o;break;case`defaultValue`:o!==l&&(z=!0),c=o;break;case`multiple`:o!==l&&(z=!0),s=o;default:o!==l&&ep(e,t,a,o,r,l)}t=c,n=s,r=m,p==null?!!r!=!!n&&(t==null?sn(e,!!n,n?[]:``,!1):sn(e,!!n,t,!0)):sn(e,!!n,p,!1);return;case`textarea`:for(c in m=p=null,n)if(a=n[c],n.hasOwnProperty(c)&&a!=null&&!r.hasOwnProperty(c))switch(c){case`value`:break;case`children`:break;default:ep(e,t,c,null,r,a)}for(s in r)if(a=r[s],o=n[s],r.hasOwnProperty(s)&&(a!=null||o!=null))switch(s){case`value`:a!==o&&(z=!0),p=a;break;case`defaultValue`:a!==o&&(z=!0),m=a;break;case`children`:break;case`dangerouslySetInnerHTML`:if(a!=null)throw Error(i(91));break;default:a!==o&&ep(e,t,s,a,r,o)}cn(e,p,m);return;case`option`:for(var h in n)if(p=n[h],n.hasOwnProperty(h)&&p!=null&&!r.hasOwnProperty(h))switch(h){case`selected`:e.selected=!1;break;default:ep(e,t,h,null,r,p)}for(l in r)if(p=r[l],m=n[l],r.hasOwnProperty(l)&&p!==m&&(p!=null||m!=null))switch(l){case`selected`:p!==m&&(z=!0),e.selected=p&&typeof p!=`function`&&typeof p!=`symbol`;break;default:ep(e,t,l,p,r,m)}return;case`img`:case`link`:case`area`:case`base`:case`br`:case`col`:case`embed`:case`hr`:case`keygen`:case`meta`:case`param`:case`source`:case`track`:case`wbr`:case`menuitem`:for(var g in n)p=n[g],n.hasOwnProperty(g)&&p!=null&&!r.hasOwnProperty(g)&&ep(e,t,g,null,r,p);for(u in r)if(p=r[u],m=n[u],r.hasOwnProperty(u)&&p!==m&&(p!=null||m!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:if(p!=null)throw Error(i(137,t));break;default:ep(e,t,u,p,r,m)}return;default:if(mn(t)){for(var _ in n)p=n[_],n.hasOwnProperty(_)&&p!==void 0&&!r.hasOwnProperty(_)&&tp(e,t,_,void 0,r,p);for(d in r)p=r[d],m=n[d],!r.hasOwnProperty(d)||p===m||p===void 0&&m===void 0||tp(e,t,d,p,r,m);return}}for(var v in n)p=n[v],n.hasOwnProperty(v)&&p!=null&&!r.hasOwnProperty(v)&&ep(e,t,v,null,r,p);for(f in r)p=r[f],m=n[f],!r.hasOwnProperty(f)||p===m||p==null&&m==null||ep(e,t,f,p,r,m)}function ap(e){switch(e){case`css`:case`script`:case`font`:case`img`:case`image`:case`input`:case`link`:return!0;default:return!1}}function op(){if(typeof performance.getEntriesByType==`function`){for(var e=0,t=0,n=performance.getEntriesByType(`resource`),r=0;r<n.length;r++){var i=n[r],a=i.transferSize,o=i.initiatorType,s=i.duration;if(a&&s&&ap(o)){for(o=0,s=i.responseEnd,r+=1;r<n.length;r++){var c=n[r],l=c.startTime;if(l>s)break;var u=c.transferSize,d=c.initiatorType;u&&ap(d)&&(c=c.responseEnd,o+=u*(c<s?1:(s-l)/(c-l)))}if(--r,t+=8*(a+o)/(i.duration/1e3),e++,10<e)break}}if(0<e)return t/e/1e6}return navigator.connection&&(e=navigator.connection.downlink,typeof e==`number`)?e:5}var sp=null,cp=null;function lp(e){return e.nodeType===9?e:e.ownerDocument}function up(e){switch(e){case`http://www.w3.org/2000/svg`:return 1;case`http://www.w3.org/1998/Math/MathML`:return 2;default:return 0}}function dp(e,t){if(e===0)switch(t){case`svg`:return 1;case`math`:return 2;default:return 0}return e===1&&t===`foreignObject`?0:e}function fp(e,t,n,r){return n=lp(n).createElement(e),n[St]=r,n[Ct]=t,np(n,e,t),It(n),n}function pp(e,t){return e===`textarea`||e===`noscript`||typeof t.children==`string`||typeof t.children==`number`||typeof t.children==`bigint`||typeof t.dangerouslySetInnerHTML==`object`&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var mp=null;function hp(){var e=window.event;return e&&e.type===`popstate`?e!==mp&&(mp=e,!0):(mp=null,!1)}var gp=typeof setTimeout==`function`?setTimeout:void 0,_p=typeof clearTimeout==`function`?clearTimeout:void 0,vp=typeof Promise==`function`?Promise:void 0,yp=typeof requestAnimationFrame==`function`?requestAnimationFrame:gp,bp=typeof queueMicrotask==`function`?queueMicrotask:vp===void 0?gp:function(e){return vp.resolve(null).then(e).catch(xp)};function xp(e){setTimeout(function(){throw e})}function Sp(e){return e===`head`}function Cp(e,t){var n=t,r=0;do{var i=n.nextSibling;if(e.removeChild(n),i&&i.nodeType===8){if(n=i.data,n===`/$`||n===`/&`){if(r===0){e.removeChild(i),Hh(t);return}r--}else if(n===`$`||n===`$?`||n===`$~`||n===`$!`||n===`&`)r++;else if(n===`html`)_m(e.ownerDocument.documentElement);else if(n===`head`){n=e.ownerDocument.head,_m(n);for(var a=n.firstChild;a;){var o=a.nextSibling,s=a.nodeName;a[kt]||s===`SCRIPT`||s===`STYLE`||s===`LINK`&&a.rel.toLowerCase()===`stylesheet`||n.removeChild(a),a=o}}else n===`body`&&_m(e.ownerDocument.body)}n=i}while(n);Hh(t)}function wp(e,t){var n=e;e=0;do{var r=n.nextSibling;if(n.nodeType===1?t?(n._stashedDisplay=n.style.display,n.style.display=`none`):(n.style.display=n._stashedDisplay||``,n.getAttribute(`style`)===``&&n.removeAttribute(`style`)):n.nodeType===3&&(t?(n._stashedText=n.nodeValue,n.nodeValue=``):n.nodeValue=n._stashedText||``),r&&r.nodeType===8){if(n=r.data,n===`/$`){if(e===0)break;e--}else n!==`$`&&n!==`$?`&&n!==`$~`&&n!==`$!`||e++}n=r}while(n)}function Tp(e,t,n){if(t=CSS.escape(t)===t?t:`r-`+btoa(t).replace(/=/g,``),e.style.viewTransitionName=t,n!=null&&(e.style.viewTransitionClass=n),n=getComputedStyle(e),n.display===`inline`){if(t=e.getClientRects(),t.length===1)var r=1;else for(var i=r=0;i<t.length;i++){var a=t[i];0<a.width&&0<a.height&&r++}r===1&&(e=e.style,e.display=t.length===1?`inline-block`:`block`,e.marginTop=`-`+n.paddingTop,e.marginBottom=`-`+n.paddingBottom)}}function Ep(e,t){e=e.style,t=t.style;var n=t==null?null:t.hasOwnProperty(`viewTransitionName`)?t.viewTransitionName:t.hasOwnProperty(`view-transition-name`)?t[`view-transition-name`]:null;e.viewTransitionName=n==null||typeof n==`boolean`?``:(``+n).trim(),n=t==null?null:t.hasOwnProperty(`viewTransitionClass`)?t.viewTransitionClass:t.hasOwnProperty(`view-transition-class`)?t[`view-transition-class`]:null,e.viewTransitionClass=n==null||typeof n==`boolean`?``:(``+n).trim(),e.display===`inline-block`&&(t==null?e.display=e.margin=``:(n=t.display,e.display=n==null||typeof n==`boolean`?``:n,n=t.margin,n==null?(n=t.hasOwnProperty(`marginTop`)?t.marginTop:t[`margin-top`],e.marginTop=n==null||typeof n==`boolean`?``:n,t=t.hasOwnProperty(`marginBottom`)?t.marginBottom:t[`margin-bottom`],e.marginBottom=t==null||typeof t==`boolean`?``:t):e.margin=n))}function Dp(e,t,n){return n=n.ownerDocument.defaultView,{rect:e,abs:t.position===`absolute`||t.position===`fixed`,clip:t.clipPath!==`none`||t.overflow!==`visible`||t.filter!==`none`||t.mask!==`none`||t.mask!==`none`||t.borderRadius!==`0px`,view:0<=e.bottom&&0<=e.right&&e.top<=n.innerHeight&&e.left<=n.innerWidth}}function Op(e){return Dp(e.getBoundingClientRect(),getComputedStyle(e),e)}function kp(e){var t=e.getBoundingClientRect();t=new DOMRect(t.x+2e4,t.y+2e4,t.width,t.height);var n=getComputedStyle(e);return Dp(t,n,e)}function Ap(e){return e.documentElement.clientHeight}function jp(e){this.addEventListener(`load`,e),this.addEventListener(`error`,e)}function Mp(e,t,n,r,i,a,o,s,c){var l=t.nodeType===9?t:t.ownerDocument;try{var u=l.startViewTransition({update:function(){var t=l.defaultView,n=t.navigation&&t.navigation.transition,o=l.fonts.status;r();var s=[];if(o===`loaded`&&(Ap(l),l.fonts.status===`loading`&&s.push(l.fonts.ready)),o=s.length,e!==null)for(var c=e.suspenseyImages,u=0,d=0;d<c.length;d++){var f=c[d];if(!f.complete){var p=f.getBoundingClientRect();if(0<p.bottom&&0<p.right&&p.top<t.innerHeight&&p.left<t.innerWidth){if(u+=Xm(f),u>$m){s.length=o;break}f=new Promise(jp.bind(f)),s.push(f)}}}if(0<s.length)return t=Promise.race([Promise.all(s),new Promise(function(e){return setTimeout(e,500)})]).then(i,i),(n?Promise.allSettled([n.finished,t]):t).then(a,a);if(i(),n)return n.finished.then(a,a);a()},types:n});l.__reactViewTransition=u;var d=[];return u.ready.then(function(){for(var e=l.documentElement.getAnimations({subtree:!0}),t=0;t<e.length;t++){var n=e[t],r=n.effect,i=r.pseudoElement;if(i!=null&&i.startsWith(`::view-transition`)){d.push(n),n=r.getKeyframes();for(var a=i=void 0,s=!0,c=0;c<n.length;c++){var u=n[c],f=u.width;if(i===void 0)i=f;else if(i!==f){s=!1;break}if(f=u.height,a===void 0)a=f;else if(a!==f){s=!1;break}delete u.width,delete u.height,u.transform===`none`&&delete u.transform}s&&i!==void 0&&a!==void 0&&(r.setKeyframes(n),s=getComputedStyle(r.target,r.pseudoElement),s.width!==i||s.height!==a)&&(s=n[0],s.width=i,s.height=a,s=n[n.length-1],s.width=i,s.height=a,r.setKeyframes(n))}}o()},function(e){l.__reactViewTransition===u&&(l.__reactViewTransition=null);try{if(typeof e==`object`&&e)switch(e.name){case`InvalidStateError`:(e.message===`View transition was skipped because document visibility state is hidden.`||e.message===`Skipping view transition because document visibility state has become hidden.`||e.message===`Skipping view transition because viewport size changed.`||e.message===`Transition was aborted because of invalid state`)&&(e=null)}e!==null&&c(e)}finally{r(),i(),o()}}),u.finished.finally(function(){for(var e=0;e<d.length;e++)d[e].cancel();l.__reactViewTransition===u&&(l.__reactViewTransition=null),s()}),u}catch{return r(),i(),o(),null}}function Np(e,t){this._scope=document.documentElement,this._selector=`::view-transition-`+e+`(`+t+`)`}Np.prototype.animate=function(e,t){return t=typeof t==`number`?{duration:t}:D({},t),t.pseudoElement=this._selector,this._scope.animate(e,t)},Np.prototype.getAnimations=function(){for(var e=this._scope,t=this._selector,n=e.getAnimations({subtree:!0}),r=[],i=0;i<n.length;i++){var a=n[i].effect;a!==null&&a.target===e&&a.pseudoElement===t&&r.push(n[i])}return r},Np.prototype.getComputedStyle=function(){return getComputedStyle(this._scope,this._selector)};function Pp(e){return{name:e,group:new Np(`group`,e),imagePair:new Np(`image-pair`,e),old:new Np(`old`,e),new:new Np(`new`,e)}}function Fp(e){this._fragmentFiber=e,this._observers=this._eventListeners=null}Fp.prototype.addEventListener=function(e,t,n){var r=null,i=null;if(!(n!=null&&typeof n!=`boolean`&&(r=n.signal||null,r!==null&&r.aborted))){this._eventListeners===null&&(this._eventListeners=[]);var a=this._eventListeners;if(Bp(a,e,t,n)===-1){var o=this,s=t;n!=null&&typeof n!=`boolean`&&!0===n.once&&(s=function(r){o.removeEventListener(e,t,n),typeof t==`function`?t.call(this,r):t.handleEvent(r)}),r!==null&&(i=o.removeEventListener.bind(o,e,t,n),r.addEventListener(`abort`,i,{once:!0}),i=r.removeEventListener.bind(r,`abort`,i)),r=Rp(n),a.push({type:e,listener:t,optionsOrUseCapture:n,attachedListener:s,cleanup:i}),h(this._fragmentFiber.child,!1,Ip,e,s,r)}this._eventListeners=a}};function Ip(e,t,n,r){return b(e).addEventListener(t,n,r),!1}Fp.prototype.removeEventListener=function(e,t,n){var r=this._eventListeners;if(r!==null&&(t=Bp(r,e,t,n),t!==-1)){var i=r[t];n=i.attachedListener;var a=i.cleanup;i=Rp(i.optionsOrUseCapture),h(this._fragmentFiber.child,!1,Lp,e,n,i),r.splice(t,1),a!==null&&a()}};function Lp(e,t,n,r){return b(e).removeEventListener(t,n,r),!1}function Rp(e){return e!=null&&typeof e!=`boolean`&&(!0===e.once||e.signal instanceof AbortSignal)?{capture:e.capture,passive:e.passive}:e}function zp(e){return e==null?`c=0`:typeof e==`boolean`?`c=`+(e?`1`:`0`):`c=`+(e.capture?`1`:`0`)}function Bp(e,t,n,r){if(e.length===0)return-1;r=zp(r);for(var i=0;i<e.length;i++){var a=e[i];if(a.type===t&&a.listener===n&&zp(a.optionsOrUseCapture)===r)return i}return-1}Fp.prototype.dispatchEvent=function(e){var t=g(this._fragmentFiber);if(t===null)return!0;t=b(t);var n=this._eventListeners;if(n!==null&&0<n.length||!e.bubbles){var r=t.nodeType===9?t.createComment(``):document.createTextNode(``);if(n)for(var i=0;i<n.length;i++){var a=n[i];r.addEventListener(a.type,a.attachedListener,Rp(a.optionsOrUseCapture))}if(t.appendChild(r),e=r.dispatchEvent(e),n)for(i=0;i<n.length;i++)a=n[i],r.removeEventListener(a.type,a.attachedListener,Rp(a.optionsOrUseCapture));return t.removeChild(r),e}return t.dispatchEvent(e)},Fp.prototype.focus=function(e){h(this._fragmentFiber.child,!0,Vp,e,void 0,void 0)};function Vp(e,t){return e.tag!==6&&(e=b(e),pm(e,t))}Fp.prototype.focusLast=function(e){var t=[];h(this._fragmentFiber.child,!0,Hp,t,void 0,void 0);for(var n=t.length-1;0<=n&&!Vp(t[n],e);n--);};function Hp(e,t){return t.push(e),!1}Fp.prototype.blur=function(){var e=g(this._fragmentFiber);e!==null&&(e=b(e),e=lp(e).activeElement,e!==null&&h(this._fragmentFiber.child,!1,Up,e,void 0,void 0))};function Up(e,t){return e.tag!==6&&(e=b(e),e===t||e.contains(t)?(t.blur(),!0):!1)}Fp.prototype.observeUsing=function(e){this._observers===null&&(this._observers=new Set),this._observers.add(e),h(this._fragmentFiber.child,!1,Wp,e,void 0,void 0)};function Wp(e,t){return e.tag===6||(e=b(e),t.observe(e)),!1}Fp.prototype.unobserveUsing=function(e){var t=this._observers;if(t!==null&&t.has(e)){t.delete(e),h(this._fragmentFiber.child,!1,Gp,e,void 0,void 0);for(var n=t=0;n<Kp.length;n++){var r=Kp[n];r.fragmentInstance===this&&r.observer===e?e.unobserve(r.instance):Kp[t++]=r}Kp.length=t}};function Gp(e,t){return e.tag===6||(e=b(e),t.unobserve(e)),!1}var Kp=[],qp=!1;function Jp(e,t,n){Kp.push({fragmentInstance:e,observer:t,instance:n}),qp||(qp=!0,mm(function(){qp=!1;var e=Kp;Kp=[];for(var t=0;t<e.length;t++){var n=e[t];n.observer.unobserve(n.instance)}}))}Fp.prototype.getClientRects=function(){var e=[];return h(this._fragmentFiber.child,!1,Yp,e,void 0,void 0),e};function Yp(e,t){if(e.tag===6){e=e.stateNode;var n=e.ownerDocument.createRange();n.selectNodeContents(e),t.push.apply(t,n.getClientRects())}else e=b(e),t.push.apply(t,e.getClientRects());return!1}Fp.prototype.getRootNode=function(e){var t=g(this._fragmentFiber);return t===null?this:b(t).getRootNode(e)},Fp.prototype.compareDocumentPosition=function(e){var t=g(this._fragmentFiber);if(t===null)return Node.DOCUMENT_POSITION_DISCONNECTED;var n=[];h(this._fragmentFiber.child,!1,Hp,n,void 0,void 0);var r=b(t);if(n.length===0){if(n=r,_(this._fragmentFiber)){a:{for(t=this._fragmentFiber.return;t!==null;){if(t.tag===4){t=t.stateNode.containerInfo;break a}if(t.tag===3||t.tag===5||t.tag===27)break;t=t.return}t=null}t!=null&&(n=t)}t=this._fragmentFiber;var i=r=n.compareDocumentPosition(e);return n===e?i=Node.DOCUMENT_POSITION_CONTAINS:r&Node.DOCUMENT_POSITION_CONTAINED_BY&&(n=v(t)[1],n===null?i=Node.DOCUMENT_POSITION_PRECEDING:(e=b(n).compareDocumentPosition(e),i=e===0||e&Node.DOCUMENT_POSITION_FOLLOWING?Node.DOCUMENT_POSITION_FOLLOWING:Node.DOCUMENT_POSITION_PRECEDING)),i|=Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC}t=b(n[0]),i=b(n[n.length-1]);var a=_(this._fragmentFiber)?t.parentElement:r;if(a==null)return Node.DOCUMENT_POSITION_DISCONNECTED;r=a.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_CONTAINED_BY,a=a.compareDocumentPosition(i)&Node.DOCUMENT_POSITION_CONTAINED_BY;var o=t.compareDocumentPosition(e),s=i.compareDocumentPosition(e),c=o&Node.DOCUMENT_POSITION_CONTAINED_BY||s&Node.DOCUMENT_POSITION_CONTAINED_BY;return s=r&&a&&o&Node.DOCUMENT_POSITION_FOLLOWING&&s&Node.DOCUMENT_POSITION_PRECEDING,t=r&&t===e||a&&i===e||c||s?Node.DOCUMENT_POSITION_CONTAINED_BY:!r&&t===e||!a&&i===e?Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC:o,t&Node.DOCUMENT_POSITION_DISCONNECTED||t&Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC||Xp(t,this._fragmentFiber,n[0],n[n.length-1],e)?t:Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC};function Xp(e,t,n,r,i){var a=Mt(i);if(e&Node.DOCUMENT_POSITION_CONTAINED_BY){if(n=!!a)a:{for(;a!==null;){if(a.tag===7&&(a===t||a.alternate===t)){n=!0;break a}a=a.return}n=!1}return n}if(e&Node.DOCUMENT_POSITION_CONTAINS){if(a===null)return a=i.ownerDocument,i===a||i===a.documentElement||i===a.body;a:{for(a=t,t=g(t);a!==null;){if(!(a.tag!==5&&a.tag!==3&&a.tag!==27||a!==t&&a.alternate!==t)){a=!0;break a}a=a.return}a=!1}return a}return e&Node.DOCUMENT_POSITION_PRECEDING?((t=!!a)&&!(t=a===n)&&(t=E(n,a,T),t===null?t=!1:(h(t,!0,C,a,n),a=x,x=null,t=a!==null)),t):e&Node.DOCUMENT_POSITION_FOLLOWING?((t=!!a)&&!(t=a===r)&&(t=E(r,a,T),t===null?t=!1:(h(t,!0,w,a,r),a=x,S=x=null,t=a!==null)),t):!1}function Zp(e,t){var n=e.ownerDocument.createRange();n.selectNodeContents(e),e=n.getBoundingClientRect(),window.scrollTo(window.scrollX+e.left,t?window.scrollY+e.top:window.scrollY+e.bottom-window.innerHeight)}Fp.prototype.scrollIntoView=function(e){if(typeof e==`object`)throw Error(i(566));var t=[];h(this._fragmentFiber.child,!1,Hp,t,void 0,void 0);var n=!1!==e;if(t.length===0){var r=v(this._fragmentFiber);if(r=n?r[1]||r[0]||g(this._fragmentFiber):r[0]||r[1],r===null)return;if(r.tag===6){e=b(r),Zp(e,n);return}if(r=b(r),r.nodeType!==9){if(r.nodeType===11){n=`host`in r?r.host:null,n!==null&&n.scrollIntoView(e);return}r.scrollIntoView(e)}}for(r=n?t.length-1:0;r!==(n?-1:t.length);){var a=t[r];a.tag===6?(a=b(a),Zp(a,n)):b(a).scrollIntoView(e),r+=n?-1:1}};function Qp(e,t){return e=b(e),$p(e,t),!1}function $p(e,t){e.reactFragments??=new Set,e.reactFragments.add(t)}function em(e,t){var n=t._eventListeners;if(n!==null)for(var r=0;r<n.length;r++){var i=n[r];e.addEventListener(i.type,i.attachedListener,Rp(i.optionsOrUseCapture))}e.nodeType!==3&&(n=t._observers,n!==null&&n.forEach(function(n){for(var r=0,i=0;i<Kp.length;i++){var a=Kp[i];(a.fragmentInstance!==t||a.observer!==n||a.instance!==e)&&(Kp[r++]=a)}Kp.length=r,n.observe(e)}),$p(e,t))}function tm(e,t){var n=t._eventListeners;if(n!==null)for(var r=0;r<n.length;r++){var i=n[r];e.removeEventListener(i.type,i.attachedListener,Rp(i.optionsOrUseCapture))}e.nodeType!==3&&(n=t._observers,n!==null&&n.forEach(function(n){typeof n.rootMargin==`string`?Jp(t,n,e):n.unobserve(e)}),e.reactFragments!=null&&e.reactFragments.delete(t))}function nm(e){var t=e.firstChild;for(t&&t.nodeType===10&&(t=t.nextSibling);t;){var n=t;switch(t=t.nextSibling,n.nodeName){case`HTML`:case`HEAD`:case`BODY`:nm(n),jt(n);continue;case`SCRIPT`:case`STYLE`:continue;case`LINK`:if(n.rel.toLowerCase()===`stylesheet`)continue}e.removeChild(n)}}function rm(e,t,n,r){for(;e.nodeType===1;){var i=n;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!r&&(e.nodeName!==`INPUT`||e.type!==`hidden`))break}else if(!r){if(t===`input`&&e.type===`hidden`){var a=i.name==null?null:``+i.name;if(i.type===`hidden`&&e.getAttribute(`name`)===a)return e}else return e}else if(!e[kt])switch(t){case`meta`:if(!e.hasAttribute(`itemprop`))break;return e;case`link`:if(a=e.getAttribute(`rel`),a===`stylesheet`&&e.hasAttribute(`data-precedence`)||a!==i.rel||e.getAttribute(`href`)!==(i.href==null||i.href===``?null:i.href)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin)||e.getAttribute(`title`)!==(i.title==null?null:i.title))break;return e;case`style`:if(e.hasAttribute(`data-precedence`))break;return e;case`script`:if(a=e.getAttribute(`src`),(a!==(i.src==null?null:i.src)||e.getAttribute(`type`)!==(i.type==null?null:i.type)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin))&&a&&e.hasAttribute(`async`)&&!e.hasAttribute(`itemprop`))break;return e;default:return e}if(e=lm(e.nextSibling),e===null)break}return null}function im(e,t,n){if(t===``)return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!n||(e=lm(e.nextSibling),e===null))return null;return e}function am(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!t||(e=lm(e.nextSibling),e===null))return null;return e}function om(e){return e.data===`$?`||e.data===`$~`}function sm(e){return e.data===`$!`||e.data===`$?`&&e.ownerDocument.readyState!==`loading`}function cm(e,t){var n=e.ownerDocument;if(e.data===`$~`)e._reactRetry=t;else if(e.data!==`$?`||n.readyState!==`loading`)t();else{var r=function(){t(),n.removeEventListener(`DOMContentLoaded`,r)};n.addEventListener(`DOMContentLoaded`,r),e._reactRetry=r}}function lm(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t===`$`||t===`$!`||t===`$?`||t===`$~`||t===`&`||t===`F!`||t===`F`)break;if(t===`/$`||t===`/&`)return null}}return e}var um=null;function dm(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`/$`||n===`/&`){if(t===0)return lm(e.nextSibling);t--}else n!==`$`&&n!==`$!`&&n!==`$?`&&n!==`$~`&&n!==`&`||t++}e=e.nextSibling}return null}function fm(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`$`||n===`$!`||n===`$?`||n===`$~`||n===`&`){if(t===0)return e;t--}else n!==`/$`&&n!==`/&`||t++}e=e.previousSibling}return null}function pm(e,t){function n(){r=!0}if(e.ownerDocument.activeElement===e)return!0;var r=!1;try{e.ownerDocument.addEventListener(`focus`,n,!0),(e.focus||HTMLElement.prototype.focus).call(e,t)}finally{e.ownerDocument.removeEventListener(`focus`,n,!0)}return r}function mm(e){yp(function(){yp(function(t){return e(t)})})}function hm(e,t,n){switch(t=lp(n),e){case`html`:if(e=t.documentElement,!e)throw Error(i(452));return e;case`head`:if(e=t.head,!e)throw Error(i(453));return e;case`body`:if(e=t.body,!e)throw Error(i(454));return e;default:throw Error(i(451))}}function gm(e,t,n){for(var r in n){var i=n[r];n.hasOwnProperty(r)&&i!=null&&ep(e,t,r,null,rp,i)}n.dangerouslySetInnerHTML!=null&&(e.textContent=``),e.onclick===vn&&(e.onclick=null),jt(e)}function _m(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);jt(e)}var vm=new Map,ym=new Set;function bm(e){if(typeof e.getRootNode==`function`){var t=e.getRootNode();if(t.nodeType===9||t.nodeType===11)return t}return e.nodeType===9?e:e.ownerDocument}var xm=P.d;P.d={f:Sm,r:Cm,D:Em,C:Dm,L:Om,m:km,X:jm,S:Am,M:Mm};function Sm(){var e=xm.f(),t=Rd();return e||t}function Cm(e){var t=Nt(e);t!==null&&t.tag===5&&t.type===`form`?ic(t):xm.r(e)}var wm=typeof document>`u`?null:document;function Tm(e,t,n){var r=wm;if(r&&typeof t==`string`&&t){var i=nn(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),ym.has(i)||(ym.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),np(t,`link`,e),It(t),r.head.appendChild(t)))}}function Em(e){xm.D(e),Tm(`dns-prefetch`,e,null)}function Dm(e,t){xm.C(e,t),Tm(`preconnect`,e,t)}function Om(e,t,n){xm.L(e,t,n);var r=wm;if(r&&e&&t){var i=`link[rel="preload"][as="`+nn(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+nn(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+nn(n.imageSizes)+`"]`)):i+=`[href="`+nn(e)+`"]`;var a=i;switch(t){case`style`:a=Pm(e);break;case`script`:a=Rm(e)}if(!(vm.has(a)||(e=D({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),vm.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(Fm(a))||t===`script`&&r.querySelector(zm(a))))){var o=r.createElement(`link`);np(o,`link`,e),t===`style`&&(o[At]=!0,o.onload=o.onerror=function(){Lt(o)}),It(o),r.head.appendChild(o)}}}function km(e,t){xm.m(e,t);var n=wm;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+nn(r)+`"][href="`+nn(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Rm(e)}if(!vm.has(a)&&(e=D({rel:`modulepreload`,href:e},t),vm.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(zm(a)))return}r=n.createElement(`link`),np(r,`link`,e),It(r),n.head.appendChild(r)}}}function Am(e,t,n){xm.S(e,t,n);var r=wm;if(r&&e){var i=Ft(r).hoistableStyles,a=Pm(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(Fm(a)))s.loading=5;else{e=D({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=vm.get(a))&&Hm(e,n);var c=o=r.createElement(`link`);It(c),np(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Vm(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function jm(e,t){xm.X(e,t);var n=wm;if(n&&e){var r=Ft(n).hoistableScripts,i=Rm(e),a=r.get(i);a||(a=n.querySelector(zm(i)),a||(e=D({src:e,async:!0},t),(t=vm.get(i))&&Um(e,t),a=n.createElement(`script`),It(a),np(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Mm(e,t){xm.M(e,t);var n=wm;if(n&&e){var r=Ft(n).hoistableScripts,i=Rm(e),a=r.get(i);a||(a=n.querySelector(zm(i)),a||(e=D({src:e,async:!0,type:`module`},t),(t=vm.get(i))&&Um(e,t),a=n.createElement(`script`),It(a),np(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Nm(e,t,n,r){var a=(a=we.current)?bm(a):null;if(!a)throw Error(i(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(n=Pm(n.href),t=Ft(a).hoistableStyles,r=t.get(n),r||(r={type:`style`,instance:null,count:0,state:null},t.set(n,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Pm(n.href);var o=Ft(a).hoistableStyles,s=o.get(e);if(s||(a=a.ownerDocument||a,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=a.querySelector(Fm(e)))?o._p||(s.instance=o,s.state.loading=5):(o=vm.get(e),o||(o={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},vm.set(e,o)),Lm(a,e,o,s.state))),t&&r===null)throw Error(i(528,``));return s}if(t&&r!==null)throw Error(i(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(n=Rm(n),t=Ft(a).hoistableScripts,r=t.get(n),r||(r={type:`script`,instance:null,count:0,state:null},t.set(n,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(i(444,e))}}function Pm(e){return`href="`+nn(e)+`"`}function Fm(e){return`link[rel="stylesheet"][`+e+`]`}function Im(e){return D({},e,{"data-precedence":e.precedence,precedence:null})}function Lm(e,t,n,r){if(t=e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)){if(!0!==t[At]){r.loading=1;return}}else t=e.createElement(`link`),t[At]=!0,t.onload=t.onerror=Lt.bind(null,t),np(t,`link`,n),It(t),e.head.appendChild(t);r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2})}function Rm(e){return`[src="`+nn(e)+`"]`}function zm(e){return`script[async]`+e}function Bm(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+nn(n.href)+`"]`);if(r)return t.instance=r,It(r),r;var a=D({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),It(r),np(r,`style`,a),Vm(r,n.precedence,e),t.instance=r;case`stylesheet`:a=Pm(n.href);var o=e.querySelector(Fm(a));if(o)return t.state.loading|=4,t.instance=o,It(o),o;r=Im(n),(a=vm.get(a))&&Hm(r,a),o=(e.ownerDocument||e).createElement(`link`),It(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),np(o,`link`,r),t.state.loading|=4,Vm(o,n.precedence,e),t.instance=o;case`script`:return o=Rm(n.src),(a=e.querySelector(zm(o)))?(t.instance=a,It(a),a):(r=n,(a=vm.get(o))&&(r=D({},n),Um(r,a)),e=e.ownerDocument||e,a=e.createElement(`script`),It(a),np(a,`link`,r),e.head.appendChild(a),t.instance=a);case`void`:return null;default:throw Error(i(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Vm(r,n.precedence,e));return t.instance}function Vm(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o<r.length;o++){var s=r[o];if(s.dataset.precedence===t)a=s;else if(a!==i)break}a?a.parentNode.insertBefore(e,a.nextSibling):(t=n.nodeType===9?n.head:n,t.insertBefore(e,t.firstChild))}function Hm(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.title??=t.title}function Um(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.integrity??=t.integrity}var Wm=null;function Gm(e,t,n){if(Wm===null){var r=new Map,i=Wm=new Map;i.set(n,r)}else i=Wm,r=i.get(n),r||(r=new Map,i.set(n,r));if(r.has(e))return r;for(r.set(e,null),n=n.getElementsByTagName(e),i=0;i<n.length;i++){var a=n[i];if(!(a[kt]||a[St]||e===`link`&&a.getAttribute(`rel`)===`stylesheet`)&&a.namespaceURI!==`http://www.w3.org/2000/svg`){var o=a.getAttribute(t)||``;o=e+o;var s=r.get(o);s?s.push(a):r.set(o,[a])}}return r}function Km(e,t,n){e=e.ownerDocument||e,e.head.insertBefore(n,t===`title`?e.querySelector(`head > title`):null)}function qm(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Jm(e,t){return e===`img`&&t.src!=null&&t.src!==``&&t.onLoad==null&&t.loading!==`lazy`}function Ym(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Xm(e){return(e.width||100)*(e.height||100)*(typeof devicePixelRatio==`number`?devicePixelRatio:1)*.25}function Zm(e,t){typeof t.decode==`function`&&(e.imgCount++,t.complete||(e.imgBytes+=Xm(t),e.suspenseyImages.push(t)),e=rh.bind(e),t.decode().then(e,e))}function Qm(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Pm(r.href),a=t.querySelector(Fm(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=nh.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,It(a);return}a=t.ownerDocument||t,r=Im(r),(i=vm.get(i))&&Hm(r,i),a=a.createElement(`link`),It(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),np(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=nh.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var $m=0;function eh(e,t){return e.stylesheets&&e.count===0&&ah(e,e.stylesheets),0<e.count||0<e.imgCount?function(n){var r=setTimeout(function(){if(e.stylesheets&&ah(e,e.stylesheets),e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}},6e4+t);0<e.imgBytes&&$m===0&&($m=62500*op());var i=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&ah(e,e.stylesheets),e.unsuspend)){var t=e.unsuspend;e.unsuspend=null,t()}},(e.imgBytes>$m?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function th(e){if(e.count===0&&(e.imgCount===0||!e.waitingForImages)){if(e.stylesheets)ah(e,e.stylesheets);else if(e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}}}function nh(){this.count--,th(this)}function rh(){this.imgCount--,th(this)}var ih=null;function ah(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,ih=new Map,t.forEach(oh,e),ih=null,nh.call(e))}function oh(e,t){if(!(t.state.loading&4)){var n=ih.get(e);if(n)var r=n.get(null);else{n=new Map,ih.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a<i.length;a++){var o=i[a];(o.nodeName===`LINK`||o.getAttribute(`media`)!==`not all`)&&(n.set(o.dataset.precedence,o),r=o)}r&&n.set(null,r)}i=t.instance,o=i.getAttribute(`data-precedence`),a=n.get(o)||r,a===r&&n.set(null,i),n.set(o,i),this.count++,r=nh.bind(this),i.addEventListener(`load`,r),i.addEventListener(`error`,r),a?a.parentNode.insertBefore(i,a.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(i,e.firstChild)),t.state.loading|=4}}var sh={$$typeof:j,Provider:null,Consumer:null,_currentValue:ve,_currentValue2:ve,_threadCount:0};function ch(e,t,n,r,i,a,o,s,c){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=dt(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=dt(0),this.hiddenUpdates=dt(null),this.identifierPrefix=r,this.onUncaughtError=i,this.onCaughtError=a,this.onRecoverableError=o,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=c,this.transitionTypes=null,this.incompleteTransitions=new Map}function lh(e,t,n,r,i,a,o,s,c,l,u,d){return e=new ch(e,t,n,o,c,l,u,d,s),t=1,!0===a&&(t|=24),a=Mi(3,null,null,t),e.current=a,a.stateNode=e,t=Ma(),t.refCount++,e.pooledCache=t,t.refCount++,a.memoizedState={element:r,isDehydrated:n,cache:t},ho(a),e}function uh(e){return e?(e=Ai,e):Ai}function dh(e,t,n,r,i,a){i=uh(i),r.context===null?r.context=i:r.pendingContext=i,r=_o(t),r.payload={element:n},a=a===void 0?null:a,a!==null&&(r.callback=a),n=vo(e,r,t),n!==null&&(Nd(n,e,t),yo(n,e,t))}function fh(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function ph(e,t){fh(e,t),(e=e.alternate)&&fh(e,t)}function mh(e){if(e.tag===13||e.tag===31){var t=Di(e,67108864);t!==null&&Nd(t,e,67108864),ph(e,67108864)}}function hh(e){if(e.tag===13||e.tag===31){var t=Ad();t=_t(t);var n=Di(e,t);n!==null&&Nd(n,e,t),ph(e,t)}}var gh=!0;function _h(e,t,n,r){var i=N.T;N.T=null;var a=P.p;try{P.p=2,yh(e,t,n,r)}finally{P.p=a,N.T=i}}function vh(e,t,n,r){var i=N.T;N.T=null;var a=P.p;try{P.p=8,yh(e,t,n,r)}finally{P.p=a,N.T=i}}function yh(e,t,n,r){if(gh){var i=bh(r);if(i===null)Gf(e,t,r,xh,n),Mh(e,r);else if(Ph(i,e,t,n,r))r.stopPropagation();else if(Mh(e,r),t&4&&-1<jh.indexOf(e)){for(;i!==null;){var a=Nt(i);if(a!==null)switch(a.tag){case 3:if(a=a.stateNode,a.current.memoizedState.isDehydrated){var o=at(a.pendingLanes);if(o!==0){var s=a;for(s.pendingLanes|=2,s.entangledLanes|=2;o;){var c=1<<31-Qe(o);s.entanglements[1]|=c,o&=~c}Tf(a),!(K&6)&&(hd=Be()+500,Ef(0,!1))}}break;case 31:case 13:s=Di(a,2),s!==null&&Nd(s,a,2),Rd(),ph(a,2)}if(a=bh(r),a===null&&Gf(e,t,r,xh,n),a===i)break;i=a}i!==null&&r.stopPropagation()}else Gf(e,t,r,null,n)}}function bh(e){return e=bn(e),Sh(e)}var xh=null;function Sh(e){if(xh=null,e=Mt(e),e!==null){var t=o(e);if(t===null)e=null;else{var n=t.tag;if(n===13){if(e=s(t),e!==null)return e;e=null}else if(n===31){if(e=c(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return xh=e,null}function Ch(e){switch(e){case`beforetoggle`:case`cancel`:case`click`:case`close`:case`contextmenu`:case`copy`:case`cut`:case`auxclick`:case`dblclick`:case`dragend`:case`dragstart`:case`drop`:case`focusin`:case`focusout`:case`input`:case`invalid`:case`keydown`:case`keypress`:case`keyup`:case`mousedown`:case`mouseup`:case`paste`:case`pause`:case`play`:case`pointercancel`:case`pointerdown`:case`pointerup`:case`ratechange`:case`reset`:case`seeked`:case`submit`:case`toggle`:case`touchcancel`:case`touchend`:case`touchstart`:case`volumechange`:case`change`:case`selectionchange`:case`textInput`:case`compositionstart`:case`compositionend`:case`compositionupdate`:case`beforeblur`:case`afterblur`:case`beforeinput`:case`blur`:case`fullscreenchange`:case`fullscreenerror`:case`focus`:case`hashchange`:case`popstate`:case`select`:case`selectstart`:return 2;case`drag`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`mousemove`:case`mouseout`:case`mouseover`:case`pointermove`:case`pointerout`:case`pointerover`:case`resize`:case`scroll`:case`touchmove`:case`wheel`:case`mouseenter`:case`mouseleave`:case`pointerenter`:case`pointerleave`:return 8;case`message`:switch(Ve()){case He:return 2;case Ue:return 8;case We:case Ge:return 32;case Ke:return 268435456;default:return 32}default:return 32}}var wh=!1,Th=null,Eh=null,Dh=null,Oh=new Map,kh=new Map,Ah=[],jh=`mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset`.split(` `);function Mh(e,t){switch(e){case`focusin`:case`focusout`:Th=null;break;case`dragenter`:case`dragleave`:Eh=null;break;case`mouseover`:case`mouseout`:Dh=null;break;case`pointerover`:case`pointerout`:Oh.delete(t.pointerId);break;case`gotpointercapture`:case`lostpointercapture`:kh.delete(t.pointerId)}}function Nh(e,t,n,r,i,a){return e===null||e.nativeEvent!==a?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:a,targetContainers:[i]},t!==null&&(t=Nt(t),t!==null&&mh(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,i!==null&&t.indexOf(i)===-1&&t.push(i),e)}function Ph(e,t,n,r,i){switch(t){case`focusin`:return Th=Nh(Th,e,t,n,r,i),!0;case`dragenter`:return Eh=Nh(Eh,e,t,n,r,i),!0;case`mouseover`:return Dh=Nh(Dh,e,t,n,r,i),!0;case`pointerover`:var a=i.pointerId;return Oh.set(a,Nh(Oh.get(a)||null,e,t,n,r,i)),!0;case`gotpointercapture`:return a=i.pointerId,kh.set(a,Nh(kh.get(a)||null,e,t,n,r,i)),!0}return!1}function Fh(e){var t=Mt(e.target);if(t!==null){var n=o(t);if(n!==null){if(t=n.tag,t===13){if(t=s(n),t!==null){e.blockedOn=t,bt(e.priority,function(){hh(n)});return}}else if(t===31){if(t=c(n),t!==null){e.blockedOn=t,bt(e.priority,function(){hh(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Ih(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=bh(e.nativeEvent);if(n===null){n=e.nativeEvent;var r=new n.constructor(n.type,n);yn=r,n.target.dispatchEvent(r),yn=null}else return t=Nt(n),t!==null&&mh(t),e.blockedOn=n,!1;t.shift()}return!0}function Lh(e,t,n){Ih(e)&&n.delete(t)}function Rh(){wh=!1,Th!==null&&Ih(Th)&&(Th=null),Eh!==null&&Ih(Eh)&&(Eh=null),Dh!==null&&Ih(Dh)&&(Dh=null),Oh.forEach(Lh),kh.forEach(Lh)}function zh(e,n){e.blockedOn===n&&(e.blockedOn=null,wh||(wh=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,Rh)))}var Bh=null;function Vh(e){Bh!==e&&(Bh=e,t.unstable_scheduleCallback(t.unstable_NormalPriority,function(){Bh===e&&(Bh=null);for(var t=0;t<e.length;t+=3){var n=e[t],r=e[t+1],i=e[t+2];if(typeof r!=`function`){if(Sh(r||n)===null)continue;break}var a=Nt(n);a!==null&&(e.splice(t,3),t-=3,nc(a,{pending:!0,data:i,method:n.method,action:r},r,i))}}))}function Hh(e){function t(t){return zh(t,e)}Th!==null&&zh(Th,e),Eh!==null&&zh(Eh,e),Dh!==null&&zh(Dh,e),Oh.forEach(t),kh.forEach(t);for(var n=0;n<Ah.length;n++){var r=Ah[n];r.blockedOn===e&&(r.blockedOn=null)}for(;0<Ah.length&&(n=Ah[0],n.blockedOn===null);)Fh(n),n.blockedOn===null&&Ah.shift();if(n=(e.ownerDocument||e).$$reactFormReplay,n!=null)for(r=0;r<n.length;r+=3){var i=n[r],a=n[r+1],o=i[Ct]||null;if(typeof a==`function`)o||Vh(n);else if(o){var s=null;if(a&&a.hasAttribute(`formAction`)){if(i=a,o=a[Ct]||null)s=o.formAction;else if(Sh(i)!==null)continue}else s=o.action;typeof s==`function`?n[r+1]=s:(n.splice(r,3),r-=3),Vh(n)}}}function Uh(){function e(e){e.canIntercept&&e.info===`react-transition`&&e.intercept({handler:function(){return new Promise(function(e){return i=e})},focusReset:`manual`,scroll:`manual`})}function t(){i!==null&&(i(),i=null),r||setTimeout(n,20)}function n(){if(!r&&!navigation.transition){var e=navigation.currentEntry;e&&e.url!=null&&navigation.navigate(e.url,{state:e.getState(),info:`react-transition`,history:`replace`})}}if(typeof navigation==`object`){var r=!1,i=null;return navigation.addEventListener(`navigate`,e),navigation.addEventListener(`navigatesuccess`,t),navigation.addEventListener(`navigateerror`,t),setTimeout(n,100),function(){r=!0,navigation.removeEventListener(`navigate`,e),navigation.removeEventListener(`navigatesuccess`,t),navigation.removeEventListener(`navigateerror`,t),i!==null&&(i(),i=null)}}}function Wh(e){this._internalRoot=e}Gh.prototype.render=Wh.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(i(409));var n=t.current;dh(n,Ad(),e,t,null,null)},Gh.prototype.unmount=Wh.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;dh(e.current,2,null,e,null,null),Rd(),t[wt]=null}};function Gh(e){this._internalRoot=e}Gh.prototype.unstable_scheduleHydration=function(e){if(e){var t=yt();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Ah.length&&t!==0&&t<Ah[n].priority;n++);Ah.splice(n,0,e),n===0&&Fh(e)}};var Kh=n.version;if(Kh!==`19.3.1`)throw Error(i(527,Kh,`19.3.1`));P.findDOMNode=function(e){var t=e._reactInternals;if(t===void 0)throw typeof e.render==`function`?Error(i(188)):(e=Object.keys(e).join(`,`),Error(i(268,e)));return e=d(t),e=e===null?null:p(e),e=e===null?null:e.stateNode,e};var qh={bundleType:0,version:`19.3.1`,rendererPackageName:`react-dom`,currentDispatcherRef:N,reconcilerVersion:`19.3.1`};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`){var Jh=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Jh.isDisabled&&Jh.supportsFiber)try{Ye=Jh.inject(qh),Xe=Jh}catch{}}e.createRoot=function(e,t){if(!a(e))throw Error(i(299));var n=!1,r=``,o=Tc,s=Ec,c=Dc;return t!=null&&(!0===t.unstable_strictMode&&(n=!0),t.identifierPrefix!==void 0&&(r=t.identifierPrefix),t.onUncaughtError!==void 0&&(o=t.onUncaughtError),t.onCaughtError!==void 0&&(s=t.onCaughtError),t.onRecoverableError!==void 0&&(c=t.onRecoverableError)),t=lh(e,1,!1,null,null,n,r,null,o,s,c,Uh),e[wt]=t.current,Uf(e),new Wh(t)}})),g=o(((e,t)=>{function n(){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE==`function`)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=h()}))(),_=c(u(),1),v=c(m(),1);function y(e){if(!e||typeof document>`u`)return;let t=document.head||document.getElementsByTagName(`head`)[0],n=document.createElement(`style`);n.type=`text/css`,t.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}var b=e=>{switch(e){case`success`:return C;case`info`:return T;case`warning`:return w;case`error`:return E;default:return null}},x=Array(12).fill(0),S=({visible:e,className:t})=>_.createElement(`div`,{className:[`sonner-loading-wrapper`,t].filter(Boolean).join(` `),"data-visible":e},_.createElement(`div`,{className:`sonner-spinner`},x.map((e,t)=>_.createElement(`div`,{className:`sonner-loading-bar`,key:`spinner-bar-${t}`})))),C=_.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`,"aria-hidden":`true`},_.createElement(`path`,{fillRule:`evenodd`,d:`M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z`,clipRule:`evenodd`})),w=_.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`currentColor`,height:`20`,width:`20`,"aria-hidden":`true`},_.createElement(`path`,{fillRule:`evenodd`,d:`M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z`,clipRule:`evenodd`})),T=_.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`,"aria-hidden":`true`},_.createElement(`path`,{fillRule:`evenodd`,d:`M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z`,clipRule:`evenodd`})),E=_.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`,"aria-hidden":`true`},_.createElement(`path`,{fillRule:`evenodd`,d:`M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z`,clipRule:`evenodd`})),D=_.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`},_.createElement(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),_.createElement(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})),ee=()=>{let[e,t]=_.useState(document.hidden);return _.useEffect(()=>{let e=()=>{t(document.hidden)};return document.addEventListener(`visibilitychange`,e),()=>document.removeEventListener(`visibilitychange`,e)},[]),e},O=1,te=100,k=e=>typeof e?.id==`number`||e?.id?.length>0?e.id:O++,A=new class{constructor(){this.subscribe=e=>(this.subscribers.push(e),this.getActiveToasts().forEach(t=>e(t)),()=>{let t=this.subscribers.indexOf(e);this.subscribers.splice(t,1)}),this.publish=e=>{this.subscribers.forEach(t=>t(e))},this.addToast=e=>{this.publish(e),this.toasts=[...this.toasts,e],this.trimHistory()},this.trimHistory=()=>{let e=this.toasts.length-te;e<=0||(this.toasts=this.toasts.filter(t=>e>0&&this.dismissedToasts.has(t.id)?(this.dismissedToasts.delete(t.id),e--,!1):!0))},this.create=e=>{let{message:t,...n}=e,r=k(e),i=this.pendingDismissals.get(r);i!==void 0&&(cancelAnimationFrame(i),this.pendingDismissals.delete(r),this.dismissedToasts.delete(r));let a=this.dismissedToasts.has(r),o=e.dismissible===void 0||e.dismissible;return a&&(this.dismissedToasts.delete(r),this.toasts=this.toasts.filter(e=>e.id!==r)),!a&&this.toasts.find(e=>e.id===r)?this.toasts=this.toasts.map(n=>n.id===r?(this.publish({...n,...e,id:r,title:t}),{...n,...e,id:r,dismissible:o,title:t}):n):this.addToast({title:t,...n,dismissible:o,id:r}),r},this.dismiss=e=>{if(e==null)return this.getActiveToasts().forEach(e=>{this.dismissedToasts.add(e.id),this.subscribers.forEach(t=>t({id:e.id,dismiss:!0}))}),e;this.dismissedToasts.add(e);let t=this.pendingDismissals.get(e);return t!==void 0&&cancelAnimationFrame(t),this.pendingDismissals.set(e,requestAnimationFrame(()=>{this.pendingDismissals.delete(e),this.subscribers.forEach(t=>t({id:e,dismiss:!0}))})),e},this.message=(e,t)=>this.create({...t,message:e,type:void 0}),this.error=(e,t)=>this.create({...t,message:e,type:`error`}),this.success=(e,t)=>this.create({...t,type:`success`,message:e}),this.info=(e,t)=>this.create({...t,type:`info`,message:e}),this.warning=(e,t)=>this.create({...t,type:`warning`,message:e}),this.loading=(e,t)=>this.create({...t,type:`loading`,message:e}),this.promise=(e,t)=>{if(!t)return;let n;t.loading!==void 0&&(n=this.create({...t,promise:e,type:`loading`,message:t.loading,description:typeof t.description==`function`?void 0:t.description}));let r=Promise.resolve(e instanceof Function?e():e),i=n!==void 0,a,o=r.then(async e=>{if(a=[`resolve`,e],_.isValidElement(e))i=!1,this.create({id:n,type:`default`,message:e});else if(re(e)&&!e.ok){i=!1;let r=typeof t.error==`function`?await t.error(`HTTP error! status: ${e.status}`):t.error,a=typeof t.description==`function`?await t.description(`HTTP error! status: ${e.status}`):t.description,o=typeof r==`object`&&!_.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}else if(e instanceof Error){i=!1;let r=typeof t.error==`function`?await t.error(e):t.error,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!_.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}else if(t.success!==void 0){i=!1;let r=typeof t.success==`function`?await t.success(e):t.success,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!_.isValidElement(r)?r:{message:r};this.create({id:n,type:`success`,description:a,...o})}}).catch(async e=>{if(a=[`reject`,e],t.error!==void 0){i=!1;let r=typeof t.error==`function`?await t.error(e):t.error,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!_.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}}).finally(()=>{i&&(this.dismiss(n),n=void 0),t.finally==null||t.finally.call(t)}),s=()=>new Promise((e,t)=>o.then(()=>a[0]===`reject`?t(a[1]):e(a[1])).catch(t));return typeof n!=`string`&&typeof n!=`number`?{unwrap:s}:Object.assign(n,{unwrap:s})},this.custom=(e,t)=>{let n=k(t);return this.create({...t,jsx:e(n),id:n,type:void 0}),n},this.getActiveToasts=()=>this.toasts.filter(e=>!this.dismissedToasts.has(e.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set,this.pendingDismissals=new Map}},ne=(e,t)=>A.message(e,t),re=e=>e&&typeof e==`object`&&`ok`in e&&typeof e.ok==`boolean`&&`status`in e&&typeof e.status==`number`,j=Object.assign(ne,{success:A.success,info:A.info,warning:A.warning,error:A.error,custom:A.custom,message:A.message,promise:A.promise,dismiss:A.dismiss,loading:A.loading},{getHistory:()=>A.toasts,getToasts:()=>A.getActiveToasts()});y(`[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--normal-text);background:var(--normal-bg);border:1px solid var(--normal-border);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:\'\';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:\'\';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:\'\';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{-webkit-user-select:none;user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}`);function M(e){return e.label!==void 0}var ie=3,ae=`24px`,oe=`16px`,se=4e3,ce=356,le=14,ue=45,de=200;function fe(...e){return e.filter(Boolean).join(` `)}function pe(e){let[t,n]=e.split(`-`),r=[];return t&&r.push(t),n&&r.push(n),r}var me=e=>{let{invert:t,toast:n,unstyled:r,interacting:i,setHeights:a,visibleToasts:o,heights:s,index:c,toasts:l,expanded:u,removeToast:d,defaultRichColors:f,closeButton:p,style:m,cancelButtonStyle:h,actionButtonStyle:g,className:v=``,descriptionClassName:y=``,duration:x,position:C,gap:w,expandByDefault:T,classNames:E,icons:O,closeButtonAriaLabel:te=`Close toast`}=e,[k,A]=_.useState(null),[ne,re]=_.useState(null),[j,ie]=_.useState(!1),[ae,oe]=_.useState(!1),[ce,le]=_.useState(!1),[me,he]=_.useState(!1),[ge,_e]=_.useState(!1),[N,P]=_.useState(0),[ve,ye]=_.useState(0),be=_.useRef(n.duration||x||se),xe=_.useRef(null),F=_.useRef(null),I=c===0,Se=c+1<=o,Ce=n.type,we=Ce??`default`,Te=n.dismissible!==!1,Ee=n.className||``,De=n.descriptionClassName||``,Oe=_.useMemo(()=>s.findIndex(e=>e.toastId===n.id)||0,[s,n.id]),ke=_.useMemo(()=>n.closeButton??p,[n.closeButton,p]),Ae=_.useMemo(()=>n.duration||x||se,[n.duration,x]),je=_.useRef(0),Me=_.useRef(0),Ne=_.useRef(0),Pe=_.useRef(null),[Fe,L]=C.split(`-`),Ie=_.useMemo(()=>s.reduce((e,t,n)=>n>=Oe?e:e+t.height,0),[s,Oe]),Le=ee(),R=_.useMemo(()=>e.swipeDirections??pe(C),[e.swipeDirections,C]),Re=n.invert||t,ze=Ce===`loading`;Me.current=_.useMemo(()=>Oe*w+Ie,[Oe,Ie]),_.useEffect(()=>{be.current=Ae},[Ae]),_.useEffect(()=>{ie(!0)},[]),_.useEffect(()=>{let e=F.current;if(e){let t=e.getBoundingClientRect().height;return ye(t),a(e=>[{toastId:n.id,height:t,position:n.position},...e]),()=>a(e=>e.filter(e=>e.toastId!==n.id))}},[a,n.id]),_.useLayoutEffect(()=>{if(!j)return;let e=F.current,t=e.style.height;e.style.height=`auto`;let r=e.getBoundingClientRect().height;e.style.height=t,ye(r),a(e=>e.find(e=>e.toastId===n.id)?e.map(e=>e.toastId===n.id?{...e,height:r}:e):[{toastId:n.id,height:r,position:n.position},...e])},[j,n.title,n.description,a,n.id,n.jsx,n.action,n.cancel]);let Be=_.useCallback(()=>{oe(!0),P(Me.current),a(e=>e.filter(e=>e.toastId!==n.id)),setTimeout(()=>{d(n)},de)},[n,d,a,Me]);_.useEffect(()=>{if(n.promise&&Ce===`loading`||n.duration===1/0||n.type===`loading`)return;let e;return u||i||Le?(()=>{if(Ne.current<je.current){let e=new Date().getTime()-je.current;be.current-=e}Ne.current=new Date().getTime()})():be.current!==1/0&&(je.current=new Date().getTime(),e=setTimeout(()=>{n.onAutoClose==null||n.onAutoClose.call(n,n),Be()},be.current)),()=>clearTimeout(e)},[u,i,n,Ce,Le,Be]),_.useEffect(()=>{n.delete&&(Be(),n.onDismiss==null||n.onDismiss.call(n,n))},[Be,n.delete]);function Ve(){return O?.loading?_.createElement(`div`,{className:fe(E?.loader,n?.classNames?.loader,`sonner-loader`),"data-visible":Ce===`loading`},O.loading):_.createElement(S,{className:fe(E?.loader,n?.classNames?.loader),visible:Ce===`loading`})}let He=n.icon||O?.[Ce]||b(Ce);return _.createElement(`li`,{tabIndex:0,ref:F,className:fe(v,Ee,E?.toast,n?.classNames?.toast,E?.[we],n?.classNames?.[we]),"data-sonner-toast":``,"data-rich-colors":n.richColors??f,"data-styled":!(n.jsx||n.unstyled||r),"data-mounted":j,"data-promise":!!n.promise,"data-swiped":ge,"data-removed":ae,"data-visible":Se,"data-y-position":Fe,"data-x-position":L,"data-index":c,"data-front":I,"data-swiping":ce,"data-dismissible":Te,"data-type":Ce,"data-invert":Re,"data-swipe-out":me,"data-swipe-direction":ne,"data-expanded":!!(u||T&&j),"data-testid":n.testId,style:{"--index":c,"--toasts-before":c,"--z-index":l.length-c,"--offset":`${ae?N:Me.current}px`,"--initial-height":T?`auto`:`${ve}px`,...m,...n.style},onDragEnd:()=>{le(!1),A(null),Pe.current=null},onPointerDown:e=>{e.button!==2&&!ze&&Te&&(xe.current=new Date,P(Me.current),e.target.setPointerCapture(e.pointerId),e.target.tagName!==`BUTTON`&&(le(!0),Pe.current={x:e.clientX,y:e.clientY}))},onPointerUp:()=>{if(me||!Te)return;Pe.current=null;let e=Number(F.current?.style.getPropertyValue(`--swipe-amount-x`).replace(`px`,``)||0),t=Number(F.current?.style.getPropertyValue(`--swipe-amount-y`).replace(`px`,``)||0),r=new Date().getTime()-xe.current?.getTime(),i=k===`x`?e:t,a=Math.abs(i)/r;if((k===`x`?R.includes(e>0?`right`:`left`):R.includes(t>0?`bottom`:`top`))&&(Math.abs(i)>=ue||a>.11))P(Me.current),n.onDismiss==null||n.onDismiss.call(n,n),re(k===`x`?e>0?`right`:`left`:t>0?`down`:`up`),Be(),he(!0);else{var o,s;(o=F.current)==null||o.style.setProperty(`--swipe-amount-x`,`0px`),(s=F.current)==null||s.style.setProperty(`--swipe-amount-y`,`0px`),_e(!1),le(!1),A(null)}},onPointerMove:e=>{var t,n;if(!Pe.current||!Te||window.getSelection()?.toString().length>0)return;let r=e.clientY-Pe.current.y,i=e.clientX-Pe.current.x;!k&&(Math.abs(i)>1||Math.abs(r)>1)&&A(Math.abs(i)>Math.abs(r)?`x`:`y`);let a={x:0,y:0},o=e=>1/(1.5+Math.abs(e)/20);if(k===`y`){if(R.includes(`top`)||R.includes(`bottom`)){if(R.includes(`top`)&&r<0||R.includes(`bottom`)&&r>0)a.y=r;else{let e=r*o(r);a.y=Math.abs(e)<Math.abs(r)?e:r}}}else if(k===`x`&&(R.includes(`left`)||R.includes(`right`))){if(R.includes(`left`)&&i<0||R.includes(`right`)&&i>0)a.x=i;else{let e=i*o(i);a.x=Math.abs(e)<Math.abs(i)?e:i}}(Math.abs(a.x)>0||Math.abs(a.y)>0)&&_e(!0),(t=F.current)==null||t.style.setProperty(`--swipe-amount-x`,`${a.x}px`),(n=F.current)==null||n.style.setProperty(`--swipe-amount-y`,`${a.y}px`)}},ke&&!n.jsx&&Ce!==`loading`?_.createElement(`button`,{"aria-label":te,"data-disabled":ze,"data-close-button":!0,onClick:ze||!Te?()=>{}:()=>{Be(),n.onDismiss==null||n.onDismiss.call(n,n)},className:fe(E?.closeButton,n?.classNames?.closeButton)},O?.close??D):null,(Ce||n.icon||n.promise)&&n.icon!==null&&(O?.[Ce]!==null||n.icon)?_.createElement(`div`,{"data-icon":``,className:fe(E?.icon,n?.classNames?.icon)},Ce===`loading`?n.icon||Ve():n.promise?Ve():null,Ce===`loading`?null:He):null,_.createElement(`div`,{"data-content":``,className:fe(E?.content,n?.classNames?.content)},_.createElement(`div`,{"data-title":``,className:fe(E?.title,n?.classNames?.title)},n.jsx?n.jsx:typeof n.title==`function`?n.title():n.title),n.description?_.createElement(`div`,{"data-description":``,className:fe(y,De,E?.description,n?.classNames?.description)},typeof n.description==`function`?n.description():n.description):null),_.isValidElement(n.cancel)?n.cancel:n.cancel&&M(n.cancel)?_.createElement(`button`,{"data-button":!0,"data-cancel":!0,style:n.cancelButtonStyle||h,onClick:e=>{M(n.cancel)&&Te&&(n.cancel.onClick==null||n.cancel.onClick.call(n.cancel,e),Be())},className:fe(E?.cancelButton,n?.classNames?.cancelButton)},n.cancel.label):null,_.isValidElement(n.action)?n.action:n.action&&M(n.action)?_.createElement(`button`,{"data-button":!0,"data-action":!0,style:n.actionButtonStyle||g,onClick:e=>{M(n.action)&&(n.action.onClick==null||n.action.onClick.call(n.action,e),!e.defaultPrevented&&Be())},className:fe(E?.actionButton,n?.classNames?.actionButton)},n.action.label):null)};function he(){if(typeof window>`u`||typeof document>`u`)return`ltr`;let e=document.documentElement.getAttribute(`dir`);return e===`auto`||!e?window.getComputedStyle(document.documentElement).direction:e}function ge(e,t){let n={};return[e,t].forEach((e,t)=>{let r=t===1,i=r?`--mobile-offset`:`--offset`,a=r?oe:ae;function o(e){[`top`,`right`,`bottom`,`left`].forEach(t=>{n[`${i}-${t}`]=typeof e==`number`?`${e}px`:e})}typeof e==`number`||typeof e==`string`?o(e):typeof e==`object`?[`top`,`right`,`bottom`,`left`].forEach(t=>{e[t]===void 0?n[`${i}-${t}`]=a:n[`${i}-${t}`]=typeof e[t]==`number`?`${e[t]}px`:e[t]}):o(a)}),n}var _e=_.forwardRef(function(e,t){let{id:n,invert:r,position:i=`bottom-right`,hotkey:a=[`altKey`,`KeyT`],expand:o,closeButton:s,className:c,offset:l,mobileOffset:u,theme:d=`light`,richColors:f,duration:p,style:m,visibleToasts:h=ie,toastOptions:g,dir:y=he(),gap:b=le,icons:x,customAriaLabel:S,containerAriaLabel:C=`Notifications`}=e,[w,T]=_.useState([]),E=_.useMemo(()=>n?w.filter(e=>e.toasterId===n):w.filter(e=>!e.toasterId),[w,n]),D=_.useMemo(()=>Array.from(new Set([i].concat(E.filter(e=>e.position).map(e=>e.position)))),[E,i]),[ee,O]=_.useState([]),[te,k]=_.useState(!1),[ne,re]=_.useState(!1),[j,M]=_.useState(d===`system`?typeof window<`u`&&window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`:d),ae=_.useRef(null),oe=a.join(`+`).replace(/Key/g,``).replace(/Digit/g,``),se=_.useRef(null),ue=_.useRef(!1),de=_.useCallback(e=>{T(t=>(t.find(t=>t.id===e.id)?.delete||A.dismiss(e.id),t.filter(({id:t})=>t!==e.id)))},[]);return _.useEffect(()=>A.subscribe(e=>{e.dismiss?requestAnimationFrame(()=>{T(t=>t.map(t=>t.id===e.id?{...t,delete:!0}:t))}):setTimeout(()=>{v.flushSync(()=>{T(t=>{let n=t.findIndex(t=>t.id===e.id);return n===-1?[e,...t]:[...t.slice(0,n),{...t[n],...e},...t.slice(n+1)]})})})}),[]),_.useEffect(()=>{if(d!==`system`){M(d);return}if(d===`system`&&(window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?M(`dark`):M(`light`)),typeof window>`u`)return;let e=window.matchMedia(`(prefers-color-scheme: dark)`);try{e.addEventListener(`change`,({matches:e})=>{M(e?`dark`:`light`)})}catch{e.addListener(({matches:e})=>{try{M(e?`dark`:`light`)}catch(e){console.error(e)}})}},[d]),_.useEffect(()=>{w.length<=1&&k(!1)},[w]),_.useEffect(()=>{let e=e=>{if(a.length>0&&a.every(t=>e[t]||e.code===t)){var t;k(!0),(t=ae.current)==null||t.focus()}e.code===`Escape`&&(document.activeElement===ae.current||ae.current?.contains(document.activeElement))&&k(!1)};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[a]),_.useEffect(()=>{if(ae.current)return()=>{se.current&&(se.current.focus({preventScroll:!0}),se.current=null,ue.current=!1)}},[ae.current]),_.createElement(`section`,{ref:t,"aria-label":S??`${C} ${oe}`,tabIndex:-1,"aria-live":`polite`,"aria-relevant":`additions text`,"aria-atomic":`false`,suppressHydrationWarning:!0,"data-react-aria-top-layer":!0},D.map((t,n)=>{let[i,a]=t.split(`-`);return E.length?_.createElement(`ol`,{key:t,dir:y===`auto`?he():y,tabIndex:-1,ref:ae,className:c,"data-sonner-toaster":!0,"data-sonner-theme":j,"data-y-position":i,"data-x-position":a,style:{"--front-toast-height":`${ee[0]?.height||0}px`,"--width":`${ce}px`,"--gap":`${b}px`,...m,...ge(l,u)},onBlur:e=>{ue.current&&!e.currentTarget.contains(e.relatedTarget)&&(ue.current=!1,se.current&&=(se.current.focus({preventScroll:!0}),null))},onFocus:e=>{e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||ue.current||(ue.current=!0,se.current=e.relatedTarget)},onMouseEnter:()=>k(!0),onMouseMove:()=>k(!0),onMouseLeave:()=>{ne||k(!1)},onDragEnd:()=>k(!1),onPointerDown:e=>{e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||re(!0)},onPointerUp:()=>re(!1)},E.filter(e=>!e.position&&n===0||e.position===t).map((n,i)=>_.createElement(me,{key:n.id,icons:x,index:i,toast:n,defaultRichColors:f,duration:g?.duration??p,className:g?.className,descriptionClassName:g?.descriptionClassName,invert:r,visibleToasts:h,closeButton:g?.closeButton??s,interacting:ne,position:t,style:g?.style,unstyled:g?.unstyled,classNames:g?.classNames,cancelButtonStyle:g?.cancelButtonStyle,actionButtonStyle:g?.actionButtonStyle,closeButtonAriaLabel:g?.closeButtonAriaLabel,removeToast:de,toasts:E.filter(e=>e.position==n.position),heights:ee.filter(e=>e.position==n.position),setHeights:O,expandByDefault:o,gap:b,expanded:te,swipeDirections:e.swipeDirections}))):null}))}),N=Object.defineProperty,P=(e,t)=>N(e,`name`,{value:t,configurable:!0});function ve(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}P(ve,`setRef`);function ye(...e){return t=>{let n=!1,r=e.map(e=>{let r=ve(e,t);return!n&&typeof r==`function`&&(n=!0),r});if(n)return()=>{for(let t=0;t<r.length;t++){let n=r[t];typeof n==`function`?n():ve(e[t],null)}}}}P(ye,`composeRefs`);function be(...e){return _.useCallback(ye(...e),e)}P(be,`useComposedRefs`);var xe=Object.defineProperty,F=(e,t)=>xe(e,`name`,{value:t,configurable:!0});function I(e){let t=_.forwardRef((t,n)=>{let{children:r,...i}=t,a=null,o=!1,s=[];Ae(r)&&typeof Pe==`function`&&(r=Pe(r._payload)),_.Children.forEach(r,e=>{if(Oe(e)){o=!0;let t=e,n=`child`in t.props?t.props.child:t.props.children;Ae(n)&&typeof Pe==`function`&&(n=Pe(n._payload)),a=Te(t,n),s.push(a?.props?.children)}else s.push(e)}),a?a=_.cloneElement(a,void 0,s):!o&&_.Children.count(r)===1&&_.isValidElement(r)&&(a=r);let c=a?De(a):void 0,l=be(n,c);if(!a){if(r||r===0)throw Error(o?Ne(e):Me(e));return r}let u=Ee(i,a.props??{});return a.type!==_.Fragment&&(u.ref=n?l:c),_.cloneElement(a,u)});return t.displayName=`${e}.Slot`,t}F(I,`createSlot`);var Se=I(`Slot`),Ce=Symbol.for(`radix.slottable`);function we(e){let t=F(e=>`child`in e?e.children(e.child):e.children,`Slottable`);return t.displayName=`${e}.Slottable`,t.__radixId=Ce,t}F(we,`createSlottable`);var Te=F((e,t)=>{if(`child`in e.props){let t=e.props.child;return _.isValidElement(t)?_.cloneElement(t,void 0,e.props.children(t.props.children)):null}return _.isValidElement(t)?t:null},`getSlottableElementFromSlottable`);function Ee(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}F(Ee,`mergeProps`);function De(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}F(De,`getElementRef`);function Oe(e){return _.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===Ce}F(Oe,`isSlottable`);var ke=Symbol.for(`react.lazy`);function Ae(e){return typeof e==`object`&&!!e&&`$$typeof`in e&&e.$$typeof===ke&&`_payload`in e&&je(e._payload)}F(Ae,`isLazyComponent`);function je(e){return typeof e==`object`&&!!e&&`then`in e}F(je,`isPromiseLike`);var Me=F(e=>`${e} failed to slot onto its children. Expected a single React element child or \\`Slottable\\`.`,`createSlotError`),Ne=F(e=>`${e} failed to slot onto its \\`Slottable\\`. Expected \\`Slottable\\` to receive a single React element child.`,`createSlottableError`),Pe=_.use,Fe=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),L=o(((e,t)=>{t.exports=Fe()}))(),Ie=Object.defineProperty,Le=(e,t)=>Ie(e,`name`,{value:t,configurable:!0}),R=[`a`,`button`,`div`,`form`,`h2`,`h3`,`img`,`input`,`label`,`li`,`nav`,`ol`,`p`,`select`,`span`,`svg`,`ul`].reduce((e,t)=>{let n=I(`Primitive.${t}`),r=_.forwardRef((e,r)=>{let{asChild:i,...a}=e,o=i?n:t;return typeof window<`u`&&(window[Symbol.for(`radix-ui`)]=!0),(0,L.jsx)(o,{...a,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function Re(e,t){e&&v.flushSync(()=>e.dispatchEvent(t))}Le(Re,`dispatchDiscreteCustomEvent`);var ze=Object.defineProperty,Be=(e,t)=>ze(e,`name`,{value:t,configurable:!0}),Ve=Object.freeze({position:`absolute`,border:0,width:1,height:1,padding:0,margin:-1,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,wordWrap:`normal`}),He=_.forwardRef(Be(function(e,t){return(0,L.jsx)(R.span,{...e,ref:t,style:{...Ve,...e.style}})},`VisuallyHidden`)),Ue=Object.defineProperty,We=(e,t)=>Ue(e,`name`,{value:t,configurable:!0});function Ge(e,t){let n=_.createContext(t);n.displayName=e+`Context`;let r=We(e=>{let{children:t,...r}=e,i=_.useMemo(()=>r,Object.values(r));return(0,L.jsx)(n.Provider,{value:i,children:t})},`Provider`);r.displayName=e+`Provider`;function i(r,i={}){let{optional:a=!1}=i,o=_.useContext(n);if(o)return o;if(t!==void 0)return t;if(!a)throw Error(`\\`${r}\\` must be used within \\`${e}\\``)}return We(i,`useContext`),[r,i]}We(Ge,`createContext`);function Ke(e,t=[]){let n=[];function r(t,r){let i=_.createContext(r);i.displayName=t+`Context`;let a=n.length;n=[...n,r];let o=We(t=>{let{scope:n,children:r,...o}=t,s=n?.[e]?.[a]||i,c=_.useMemo(()=>o,Object.values(o));return(0,L.jsx)(s.Provider,{value:c,children:r})},`Provider`);o.displayName=t+`Provider`;function s(n,o,s={}){let{optional:c=!1}=s,l=o?.[e]?.[a]||i,u=_.useContext(l);if(u)return u;if(r!==void 0)return r;if(!c)throw Error(`\\`${n}\\` must be used within \\`${t}\\``)}return We(s,`useContext`),[o,s]}We(r,`createContext`);let i=We(()=>{let t=n.map(e=>_.createContext(e));return We(function(n){let r=n?.[e]||t;return _.useMemo(()=>({[`__scope${e}`]:{...n,[e]:r}}),[n,r])},`useScope`)},`createScope`);return i.scopeName=e,[r,qe(i,...t)]}We(Ke,`createContextScope`);function qe(...e){let t=e[0];if(e.length===1)return t;let n=We(()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return We(function(e){let r=n.reduce((t,{useScope:n,scopeName:r})=>{let i=n(e)[`__scope${r}`];return{...t,...i}},{});return _.useMemo(()=>({[`__scope${t.scopeName}`]:r}),[r])},`useComposedScopes`)},`createScope`);return n.scopeName=t.scopeName,n}We(qe,`composeContextScopes`);var Je=Object.defineProperty,Ye=(e,t)=>Je(e,`name`,{value:t,configurable:!0});function Xe(e){let t=e+`CollectionProvider`,[n,r]=Ke(t),[i,a]=n(t,{collectionRef:{current:null},itemMap:new Map}),o=Ye(e=>{let{scope:t,children:n}=e,r=_.useRef(null),a=_.useRef(new Map).current;return(0,L.jsx)(i,{scope:t,itemMap:a,collectionRef:r,children:n})},`CollectionProvider`);o.displayName=t;let s=e+`CollectionSlot`,c=I(s),l=_.forwardRef((e,t)=>{let{scope:n,children:r}=e,i=be(t,a(s,n).collectionRef);return(0,L.jsx)(c,{ref:i,children:r})});l.displayName=s;let u=e+`CollectionItemSlot`,d=`data-radix-collection-item`,f=I(u),p=_.forwardRef((e,t)=>{let{scope:n,children:r,...i}=e,o=_.useRef(null),s=be(t,o),c=a(u,n);return _.useEffect(()=>(c.itemMap.set(o,{ref:o,...i}),()=>void c.itemMap.delete(o))),(0,L.jsx)(f,{[d]:``,ref:s,children:r})});p.displayName=u;function m(t){let n=a(e+`CollectionConsumer`,t);return _.useCallback(()=>{let e=n.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${d}]`));return Array.from(n.itemMap.values()).sort((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current))},[n.collectionRef,n.itemMap])}return Ye(m,`useCollection`),[{Provider:o,Slot:l,ItemSlot:p},m,r]}Ye(Xe,`createCollection`);var Ze=new WeakMap,Qe=class e extends Map{static{Ye(this,`OrderedDict`)}#e;constructor(e){super(e),this.#e=[...super.keys()],Ze.set(this,!0)}set(e,t){return Ze.get(this)&&(this.has(e)?this.#e[this.#e.indexOf(e)]=e:this.#e.push(e)),super.set(e,t),this}insert(e,t,n){let r=this.has(t),i=this.#e.length,a=tt(e),o=a>=0?a:i+a,s=o<0||o>=i?-1:o;if(s===this.size||r&&s===this.size-1||s===-1)return this.set(t,n),this;let c=this.size+ +!r;a<0&&o++;let l=[...this.#e],u,d=!1;for(let e=o;e<c;e++)if(o===e){let i=l[e];l[e]===t&&(i=l[e+1]),r&&this.delete(t),u=this.get(i),this.set(t,n)}else{!d&&l[e-1]===t&&(d=!0);let n=l[d?e:e-1],r=u;u=this.get(n),this.delete(n),this.set(n,r)}return this}with(t,n,r){let i=new e(this);return i.insert(t,n,r),i}before(e){let t=this.#e.indexOf(e)-1;if(!(t<0))return this.entryAt(t)}setBefore(e,t,n){let r=this.#e.indexOf(e);return r===-1?this:this.insert(r,t,n)}after(e){let t=this.#e.indexOf(e);if(t=t===-1||t===this.size-1?-1:t+1,t!==-1)return this.entryAt(t)}setAfter(e,t,n){let r=this.#e.indexOf(e);return r===-1?this:this.insert(r+1,t,n)}first(){return this.entryAt(0)}last(){return this.entryAt(-1)}clear(){return this.#e=[],super.clear()}delete(e){let t=super.delete(e);return t&&this.#e.splice(this.#e.indexOf(e),1),t}deleteAt(e){let t=this.keyAt(e);return t!==void 0&&this.delete(t)}at(e){let t=$e(this.#e,e);if(t!==void 0)return this.get(t)}entryAt(e){let t=$e(this.#e,e);if(t!==void 0)return[t,this.get(t)]}indexOf(e){return this.#e.indexOf(e)}keyAt(e){return $e(this.#e,e)}from(e,t){let n=this.indexOf(e);if(n===-1)return;let r=n+t;return r<0&&(r=0),r>=this.size&&(r=this.size-1),this.at(r)}keyFrom(e,t){let n=this.indexOf(e);if(n===-1)return;let r=n+t;return r<0&&(r=0),r>=this.size&&(r=this.size-1),this.keyAt(r)}find(e,t){let n=0;for(let r of this){if(Reflect.apply(e,t,[r,n,this]))return r;n++}}findIndex(e,t){let n=0;for(let r of this){if(Reflect.apply(e,t,[r,n,this]))return n;n++}return-1}filter(t,n){let r=[],i=0;for(let e of this)Reflect.apply(t,n,[e,i,this])&&r.push(e),i++;return new e(r)}map(t,n){let r=[],i=0;for(let e of this)r.push([e[0],Reflect.apply(t,n,[e,i,this])]),i++;return new e(r)}reduce(...e){let[t,n]=e,r=0,i=n??this.at(0);for(let n of this)i=r===0&&e.length===1?n:Reflect.apply(t,this,[i,n,r,this]),r++;return i}reduceRight(...e){let[t,n]=e,r=n??this.at(-1);for(let n=this.size-1;n>=0;n--){let i=this.at(n);r=n===this.size-1&&e.length===1?i:Reflect.apply(t,this,[r,i,n,this])}return r}toSorted(t){let n=[...this.entries()].sort(t);return new e(n)}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let n=this.keyAt(e),r=this.get(n);t.set(n,r)}return t}toSpliced(...t){let n=[...this.entries()];return n.splice(...t),new e(n)}slice(t,n){let r=new e,i=this.size-1;if(t===void 0)return r;t<0&&(t+=this.size),n!==void 0&&n>0&&(i=n-1);for(let e=t;e<=i;e++){let t=this.keyAt(e),n=this.get(t);r.set(t,n)}return r}every(e,t){let n=0;for(let r of this){if(!Reflect.apply(e,t,[r,n,this]))return!1;n++}return!0}some(e,t){let n=0;for(let r of this){if(Reflect.apply(e,t,[r,n,this]))return!0;n++}return!1}};function $e(e,t){if(`at`in Array.prototype)return Array.prototype.at.call(e,t);let n=et(e,t);return n===-1?void 0:e[n]}Ye($e,`at`);function et(e,t){let n=e.length,r=tt(t),i=r>=0?r:n+r;return i<0||i>=n?-1:i}Ye(et,`toSafeIndex`);function tt(e){return e!==e||e===0?0:Math.trunc(e)}Ye(tt,`toSafeInteger`);function nt(e){let t=e+`CollectionProvider`,[n,r]=Ke(t),[i,a]=n(t,{collectionElement:null,collectionRef:{current:null},collectionRefObject:{current:null},itemMap:new Qe,setItemMap:Ye(()=>void 0,`setItemMap`)}),o=Ye(({state:e,...t})=>e?(0,L.jsx)(c,{...t,state:e}):(0,L.jsx)(s,{...t}),`CollectionProvider`);o.displayName=t;let s=Ye(e=>{let t=h();return(0,L.jsx)(c,{...e,state:t})},`CollectionInit`);s.displayName=t+`Init`;let c=Ye(e=>{let{scope:t,children:n,state:r}=e,a=_.useRef(null),[o,s]=_.useState(null),c=be(a,s),[l,u]=r;return _.useEffect(()=>{if(!o)return;let e=ot(()=>{});return e.observe(o,{childList:!0,subtree:!0}),()=>{e.disconnect()}},[o]),(0,L.jsx)(i,{scope:t,itemMap:l,setItemMap:u,collectionRef:c,collectionRefObject:a,collectionElement:o,children:n})},`CollectionProviderImpl`);c.displayName=t+`Impl`;let l=e+`CollectionSlot`,u=I(l),d=_.forwardRef((e,t)=>{let{scope:n,children:r}=e,i=be(t,a(l,n).collectionRef);return(0,L.jsx)(u,{ref:i,children:r})});d.displayName=l;let f=e+`CollectionItemSlot`,p=I(f),m=_.forwardRef((e,t)=>{let{scope:n,children:r,...i}=e,o=_.useRef(null),[s,c]=_.useState(null),l=be(t,o,c),{setItemMap:u}=a(f,n),d=_.useRef(i);rt(d.current,i)||(d.current=i);let m=d.current;return _.useEffect(()=>{let e=m;return u(t=>s?t.has(s)?t.set(s,{...e,element:s}).toSorted(at):(t.set(s,{...e,element:s}),t.toSorted(at)):t),()=>{u(e=>!s||!e.has(s)?e:(e.delete(s),new Qe(e)))}},[s,m,u]),(0,L.jsx)(p,{"data-radix-collection-item":``,ref:l,children:r})});m.displayName=f;function h(){return _.useState(new Qe)}Ye(h,`useInitCollection`);function g(t){let{itemMap:n}=a(e+`CollectionConsumer`,t);return n}return Ye(g,`useCollection`),[{Provider:o,Slot:d,ItemSlot:m},{createCollectionScope:r,useCollection:g,useInitCollection:h}]}Ye(nt,`createCollection`);function rt(e,t){if(e===t)return!0;if(typeof e!=`object`||typeof t!=`object`||e==null||t==null)return!1;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||e[r]!==t[r])return!1;return!0}Ye(rt,`shallowEqual`);function it(e,t){return!!(t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_PRECEDING)}Ye(it,`isElementPreceding`);function at(e,t){return!e[1].element||!t[1].element?0:it(e[1].element,t[1].element)?-1:1}Ye(at,`sortByDocumentPosition`);function ot(e){return new MutationObserver(t=>{for(let n of t)if(n.type===`childList`){e();return}})}Ye(ot,`getChildListObserver`);var st=Object.defineProperty,ct=(e,t)=>st(e,`name`,{value:t,configurable:!0}),lt=!!(typeof window<`u`&&window.document&&window.document.createElement);function ut(e,t,{checkForDefaultPrevented:n=!0}={}){return ct(function(r){if(e?.(r),n===!1||!r||!r.defaultPrevented)return t?.(r)},`handleEvent`)}ct(ut,`composeEventHandlers`);function dt(e){if(!lt)throw Error(`Cannot access window outside of the DOM`);return e?.ownerDocument?.defaultView??window}ct(dt,`getOwnerWindow`);function ft(e){if(!lt)throw Error(`Cannot access document outside of the DOM`);return e?.ownerDocument??document}ct(ft,`getOwnerDocument`);function pt(e,t=!1){let{activeElement:n}=ft(e);if(!n?.nodeName)return null;if(mt(n)&&n.contentDocument)return pt(n.contentDocument.body,t);if(t){let e=n.getAttribute(`aria-activedescendant`);if(e){let t=ft(n).getElementById(e);if(t)return t}}return n}ct(pt,`getActiveElement`);function mt(e){return e.tagName===`IFRAME`}ct(mt,`isFrame`);var ht=globalThis?.document?_.useLayoutEffect:()=>{},gt=Object.defineProperty,_t=(e,t)=>gt(e,`name`,{value:t,configurable:!0}),vt=_.useEffectEvent,yt=_.useInsertionEffect;function bt(e){if(typeof vt==`function`)return vt(e);let t=_.useRef(()=>{throw Error(`Cannot call an event handler while rendering.`)});return typeof yt==`function`?yt(()=>{t.current=e}):ht(()=>{t.current=e}),_.useMemo(()=>((...e)=>t.current?.(...e)),[])}_t(bt,`useEffectEvent`);var xt=Object.defineProperty,St=(e,t)=>xt(e,`name`,{value:t,configurable:!0}),Ct=_.useInsertionEffect||ht;function wt({prop:e,defaultProp:t,onChange:n=St(()=>{},`onChange`),caller:r}){let[i,a,o]=Tt({defaultProp:t,onChange:n}),s=e!==void 0;return[s?e:i,_.useCallback(t=>{if(s){let n=Et(t)?t(e):t;n!==e&&o.current?.(n)}else a(t)},[s,e,a,o])]}St(wt,`useControllableState`);function Tt({defaultProp:e,onChange:t}){let[n,r]=_.useState(e),i=_.useRef(n),a=_.useRef(t);return Ct(()=>{a.current=t},[t]),_.useEffect(()=>{i.current!==n&&(a.current?.(n),i.current=n)},[n,i]),[n,r,a]}St(Tt,`useUncontrolledState`);function Et(e){return typeof e==`function`}St(Et,`isFunction`);var Dt=Symbol(`RADIX:SYNC_STATE`);function Ot(e,t,n,r){let{prop:i,defaultProp:a,onChange:o,caller:s}=t,c=i!==void 0,l=bt(o),u=[{...n,state:a}];r&&u.push(r);let[d,f]=_.useReducer((t,n)=>{if(n.type===Dt)return{...t,state:n.state};let r=e(t,n);return c&&!Object.is(r.state,t.state)&&l(r.state),r},...u),p=d.state,m=_.useRef(p);_.useEffect(()=>{m.current!==p&&(m.current=p,c||l(p))},[p,m,c]);let h=_.useMemo(()=>i===void 0?d:{...d,state:i},[d,i]);return _.useEffect(()=>{c&&!Object.is(i,d.state)&&f({type:Dt,state:i})},[i,d.state,c]),[h,f]}St(Ot,`useControllableStateReducer`);var kt=Object.defineProperty,At=(e,t)=>kt(e,`name`,{value:t,configurable:!0});function jt(e,t){return _.useReducer((e,n)=>t[e][n]??e,e)}At(jt,`useStateMachine`);var Mt=At(e=>{let{present:t,children:n}=e,r=Nt(t),i=typeof n==`function`?n({present:r.isPresent}):_.Children.only(n),a=Ft(r.ref,Lt(i));return typeof n==`function`||r.isPresent?_.cloneElement(i,{ref:a}):null},`Presence`);function Nt(e){let[t,n]=_.useState(),r=_.useRef(null),i=_.useRef(e),a=_.useRef(`none`),o=_.useRef(void 0),[s,c]=jt(e?`mounted`:`unmounted`,{mounted:{UNMOUNT:`unmounted`,ANIMATION_OUT:`unmountSuspended`},unmountSuspended:{MOUNT:`mounted`,ANIMATION_END:`unmounted`},unmounted:{MOUNT:`mounted`}});return _.useEffect(()=>{s===`mounted`?(a.current=o.current??It(r.current),o.current=void 0):a.current=`none`},[s]),ht(()=>{let t=r.current,n=i.current;if(n!==e){let r=a.current,s=It(t);e?(o.current=s,c(`MOUNT`)):s===`none`||t?.display===`none`?c(`UNMOUNT`):c(n&&r!==s?`ANIMATION_OUT`:`UNMOUNT`),i.current=e}},[e,c]),ht(()=>{if(t){let e,n=t.ownerDocument.defaultView??window,o=At(a=>{let o=It(r.current).includes(CSS.escape(a.animationName));if(a.target===t&&o&&(c(`ANIMATION_END`),!i.current)){let r=t.style.animationFillMode;t.style.animationFillMode=`forwards`,e=n.setTimeout(()=>{t.style.animationFillMode===`forwards`&&(t.style.animationFillMode=r)})}},`handleAnimationEnd`),s=At(e=>{e.target===t&&(a.current=It(r.current))},`handleAnimationStart`);return t.addEventListener(`animationstart`,s),t.addEventListener(`animationcancel`,o),t.addEventListener(`animationend`,o),()=>{n.clearTimeout(e),t.removeEventListener(`animationstart`,s),t.removeEventListener(`animationcancel`,o),t.removeEventListener(`animationend`,o)}}c(`ANIMATION_END`)},[t,c]),{isPresent:[`mounted`,`unmountSuspended`].includes(s),ref:_.useCallback(e=>{if(e){let t=getComputedStyle(e);r.current=t,o.current=It(t)}else r.current=null;n(e)},[])}}At(Nt,`usePresence`);function Pt(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}At(Pt,`setRef`);function Ft(...e){let t=_.useRef(e);return t.current=e,_.useCallback(e=>{let n=t.current,r=!1,i=n.map(t=>{let n=Pt(t,e);return!r&&typeof n==`function`&&(r=!0),n});if(r)return()=>{for(let e=0;e<i.length;e++){let t=i[e];typeof t==`function`?t():Pt(n[e],null)}}},[])}At(Ft,`useStableComposedRefs`);function It(e){return e?.animationName||`none`}At(It,`getAnimationName`);function Lt(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}At(Lt,`getElementRef`);var Rt=Object.defineProperty,zt=(e,t)=>Rt(e,`name`,{value:t,configurable:!0}),Bt=_.useId||(()=>void 0),Vt=0;function Ht(e){let[t,n]=_.useState(Bt());return ht(()=>{e||n(e=>e??String(Vt++))},[e]),e||(t?`radix-${t}`:``)}zt(Ht,`useId`);var Ut=Object.defineProperty,Wt=(e,t)=>Ut(e,`name`,{value:t,configurable:!0}),Gt=_.createContext(void 0);function z(e){let t=_.useContext(Gt);return e||t||`ltr`}Wt(z,`useDirection`);var Kt=Object.defineProperty,qt=(e,t)=>Kt(e,`name`,{value:t,configurable:!0});function Jt(e){let t=_.useRef(e);return _.useEffect(()=>{t.current=e}),_.useMemo(()=>((...e)=>t.current?.(...e)),[])}qt(Jt,`useCallbackRef`);var Yt=Object.defineProperty,Xt=(e,t)=>Yt(e,`name`,{value:t,configurable:!0}),Zt=`dismissableLayer.update`,Qt=`dismissableLayer.pointerDownOutside`,$t=`dismissableLayer.focusOutside`,en,tn=_.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),nn=_.forwardRef(Xt(function(e,t){let{disableOutsidePointerEvents:n=!1,deferPointerDownOutside:r=!1,onEscapeKeyDown:i,onPointerDownOutside:a,onFocusOutside:o,onInteractOutside:s,onDismiss:c,...l}=e,u=_.useContext(tn),[d,f]=_.useState(null),p=d?.ownerDocument??globalThis?.document,[,m]=_.useState({}),h=be(t,f),g=Array.from(u.layers),[v]=[...u.layersWithOutsidePointerEventsDisabled].slice(-1),y=v?g.indexOf(v):-1,b=d?g.indexOf(d):-1,x=u.layersWithOutsidePointerEventsDisabled.size>0,S=b>=y,C=_.useRef(!1),w=on(e=>{a?.(e),s?.(e),e.defaultPrevented||c?.()},{ownerDocument:p,deferPointerDownOutside:r,isDeferredPointerDownOutsideRef:C,dismissableSurfaces:u.dismissableSurfaces,shouldHandlePointerDownOutside:_.useCallback(e=>{if(!(e instanceof Node))return!1;let t=[...u.branches].some(t=>t.contains(e));return S&&!t},[u.branches,S])}),T=sn(e=>{if(r&&C.current)return;let t=e.target;[...u.branches].some(e=>e.contains(t))||(o?.(e),s?.(e),e.defaultPrevented||c?.())},p),E=d?b===g.length-1:!1,D=Jt(e=>{e.key===`Escape`&&(i?.(e),!e.defaultPrevented&&c&&(e.preventDefault(),c()))});return _.useEffect(()=>{if(E)return p.addEventListener(`keydown`,D,{capture:!0}),()=>p.removeEventListener(`keydown`,D,{capture:!0})},[p,E,D]),_.useEffect(()=>{if(d)return n&&(u.layersWithOutsidePointerEventsDisabled.size===0&&(en=p.body.style.pointerEvents,p.body.style.pointerEvents=`none`),u.layersWithOutsidePointerEventsDisabled.add(d)),u.layers.add(d),cn(),()=>{n&&(u.layersWithOutsidePointerEventsDisabled.delete(d),u.layersWithOutsidePointerEventsDisabled.size===0&&(p.body.style.pointerEvents=en))}},[d,p,n,u]),_.useEffect(()=>()=>{d&&(u.layers.delete(d),u.layersWithOutsidePointerEventsDisabled.delete(d),cn())},[d,u]),_.useEffect(()=>{let e=Xt(()=>m({}),`handleUpdate`);return document.addEventListener(Zt,e),()=>document.removeEventListener(Zt,e)},[]),(0,L.jsx)(R.div,{...l,ref:h,style:{pointerEvents:x?S?`auto`:`none`:void 0,...e.style},onFocusCapture:ut(e.onFocusCapture,T.onFocusCapture),onBlurCapture:ut(e.onBlurCapture,T.onBlurCapture),onPointerDownCapture:ut(e.onPointerDownCapture,w.onPointerDownCapture)})},`DismissableLayer`));function rn(){let e=_.useContext(tn),[t,n]=_.useState(null);return _.useEffect(()=>{if(t)return e.dismissableSurfaces.add(t),()=>{e.dismissableSurfaces.delete(t)}},[t,e.dismissableSurfaces]),n}Xt(rn,`useDismissableLayerSurface`);var an=Xt(()=>!0,`IS_TRUE`);function on(e,t){let{ownerDocument:n=globalThis?.document,deferPointerDownOutside:r=!1,isDeferredPointerDownOutsideRef:i,dismissableSurfaces:a,shouldHandlePointerDownOutside:o=an}=t,s=Jt(e),c=_.useRef(!1),l=_.useRef(!1),u=_.useRef(new Map),d=_.useRef(()=>{});return _.useEffect(()=>{function e(){l.current=!1,i.current=!1,u.current.clear()}Xt(e,`resetOutsideInteraction`);function t(){return Array.from(u.current.values()).some(Boolean)}Xt(t,`isOutsideInteractionIntercepted`);function f(e){if(!l.current)return;let t=e.target;t instanceof Node&&[...a].some(e=>e.contains(t))||u.current.set(e.type,!0),e.type===`click`&&window.setTimeout(()=>{l.current&&d.current()},0)}Xt(f,`handleInteractionCapture`);function p(e){l.current&&u.current.set(e.type,!1)}Xt(p,`handleInteractionBubble`);let m=Xt(a=>{if(a.target&&!c.current){let f=function(){n.removeEventListener(`click`,d.current);let r=t();e(),r||ln(Qt,s,p,{discrete:!0})};if(Xt(f,`handleAndDispatchPointerDownOutsideEvent`),!o(a.target)){n.removeEventListener(`click`,d.current),e(),c.current=!1;return}let p={originalEvent:a};l.current=!0,i.current=r&&a.button===0,u.current.clear(),!r||a.button!==0?f():(n.removeEventListener(`click`,d.current),d.current=f,n.addEventListener(`click`,d.current,{once:!0}))}else n.removeEventListener(`click`,d.current),e();c.current=!1},`handlePointerDown`),h=[`pointerup`,`mousedown`,`mouseup`,`touchstart`,`touchend`,`click`];for(let e of h)n.addEventListener(e,f,!0),n.addEventListener(e,p);let g=window.setTimeout(()=>{n.addEventListener(`pointerdown`,m)},0);return()=>{window.clearTimeout(g),n.removeEventListener(`pointerdown`,m),n.removeEventListener(`click`,d.current);for(let e of h)n.removeEventListener(e,f,!0),n.removeEventListener(e,p)}},[n,s,r,i,a,o]),{onPointerDownCapture:Xt(()=>c.current=!0,`onPointerDownCapture`)}}Xt(on,`usePointerDownOutside`);function sn(e,t=globalThis?.document){let n=Jt(e),r=_.useRef(!1);return _.useEffect(()=>{let e=Xt(e=>{e.target&&!r.current&&ln($t,n,{originalEvent:e},{discrete:!1})},`handleFocus`);return t.addEventListener(`focusin`,e),()=>t.removeEventListener(`focusin`,e)},[t,n]),{onFocusCapture:Xt(()=>r.current=!0,`onFocusCapture`),onBlurCapture:Xt(()=>r.current=!1,`onBlurCapture`)}}Xt(sn,`useFocusOutside`);function cn(){let e=new CustomEvent(Zt);document.dispatchEvent(e)}Xt(cn,`dispatchUpdate`);function ln(e,t,n,{discrete:r}){let i=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?Re(i,a):i.dispatchEvent(a)}Xt(ln,`handleAndDispatchCustomEvent`);var un=Object.defineProperty,dn=(e,t)=>un(e,`name`,{value:t,configurable:!0}),fn=`focusScope.autoFocusOnMount`,pn=`focusScope.autoFocusOnUnmount`,mn={bubbles:!1,cancelable:!0},hn=_.forwardRef(dn(function(e,t){let{loop:n=!1,trapped:r=!1,onMountAutoFocus:i,onUnmountAutoFocus:a,...o}=e,[s,c]=_.useState(null),l=Jt(i),u=Jt(a),d=_.useRef(null),f=be(t,c),p=_.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;_.useEffect(()=>{if(r){let e=function(e){if(p.paused||!s)return;let t=e.target;s.contains(t)?d.current=t:Sn(d.current,{select:!0})},t=function(e){if(p.paused||!s)return;let t=e.relatedTarget;t!==null&&(s.contains(t)||Sn(d.current,{select:!0}))},n=function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&Sn(s)};dn(e,`handleFocusIn`),dn(t,`handleFocusOut`),dn(n,`handleMutations`),document.addEventListener(`focusin`,e),document.addEventListener(`focusout`,t);let r=new MutationObserver(n);return s&&r.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener(`focusin`,e),document.removeEventListener(`focusout`,t),r.disconnect()}}},[r,s,p.paused]),_.useEffect(()=>{if(s){Cn.add(p);let e=document.activeElement;if(!s.contains(e)){let t=new CustomEvent(fn,mn);s.addEventListener(fn,l),s.dispatchEvent(t),t.defaultPrevented||(gn(En(vn(s)),{select:!0}),document.activeElement===e&&Sn(s))}return()=>{s.removeEventListener(fn,l),setTimeout(()=>{let t=new CustomEvent(pn,mn);s.addEventListener(pn,u),s.dispatchEvent(t),t.defaultPrevented||Sn(e??document.body,{select:!0}),s.removeEventListener(pn,u),Cn.remove(p)},0)}}},[s,l,u,p]);let m=_.useCallback(e=>{if(!n&&!r||p.paused)return;let t=e.key===`Tab`&&!e.altKey&&!e.ctrlKey&&!e.metaKey,i=document.activeElement;if(t&&i){let t=e.currentTarget,[r,a]=_n(t);r&&a?!e.shiftKey&&i===a?(e.preventDefault(),n&&Sn(r,{select:!0})):e.shiftKey&&i===r&&(e.preventDefault(),n&&Sn(a,{select:!0})):i===t&&e.preventDefault()}},[n,r,p.paused]);return(0,L.jsx)(R.div,{tabIndex:-1,...o,ref:f,onKeyDown:m})},`FocusScope`));function gn(e,{select:t=!1}={}){let n=document.activeElement;for(let r of e)if(Sn(r,{select:t}),document.activeElement!==n)return}dn(gn,`focusFirst`);function _n(e){let t=vn(e);return[yn(t,e),yn(t.reverse(),e)]}dn(_n,`getTabbableEdges`);function vn(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:dn(e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP},`acceptNode`)});for(;n.nextNode();)t.push(n.currentNode);return t}dn(vn,`getTabbableCandidates`);function yn(e,t){let n=typeof t.checkVisibility==`function`&&t.checkVisibility({checkVisibilityCSS:!0});for(let r of e)if(!(n?!r.checkVisibility({checkVisibilityCSS:!0}):bn(r,{upTo:t})))return r}dn(yn,`findVisible`);function bn(e,{upTo:t}){if(getComputedStyle(e).visibility===`hidden`)return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display===`none`)return!0;e=e.parentElement}return!1}dn(bn,`isHidden`);function xn(e){return e instanceof HTMLInputElement&&`select`in e}dn(xn,`isSelectableInput`);function Sn(e,{select:t=!1}={}){if(e&&e.focus){let n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&xn(e)&&t&&e.select()}}dn(Sn,`focus`);var Cn=wn();function wn(){let e=[];return{add(t){let n=e[0];t!==n&&n?.pause(),e=Tn(e,t),e.unshift(t)},remove(t){e=Tn(e,t),e[0]?.resume()}}}dn(wn,`createFocusScopesStack`);function Tn(e,t){let n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}dn(Tn,`arrayRemove`);function En(e){return e.filter(e=>e.tagName!==`A`)}dn(En,`removeLinks`);var Dn=Object.defineProperty,On=_.forwardRef(((e,t)=>Dn(e,`name`,{value:t,configurable:!0}))(function(e,t){let{container:n,...r}=e,[i,a]=_.useState(!1);ht(()=>a(!0),[]);let o=n||i&&globalThis?.document?.body;return o?v.createPortal((0,L.jsx)(R.div,{...r,ref:t}),o):null},`Portal`)),kn=Object.defineProperty,An=(e,t)=>kn(e,`name`,{value:t,configurable:!0}),jn=0,Mn=null;function Nn(e){return Pn(),e.children}An(Nn,`FocusGuards`);function Pn(){_.useEffect(()=>{Mn||={start:Fn(),end:Fn()};let{start:e,end:t}=Mn;return document.body.firstElementChild!==e&&document.body.insertAdjacentElement(`afterbegin`,e),document.body.lastElementChild!==t&&document.body.insertAdjacentElement(`beforeend`,t),jn++,()=>{jn===1&&(Mn?.start.remove(),Mn?.end.remove(),Mn=null),jn=Math.max(0,jn-1)}},[])}An(Pn,`useFocusGuards`);function Fn(){let e=document.createElement(`span`);return e.setAttribute(`data-radix-focus-guard`,``),e.tabIndex=0,e.style.outline=`none`,e.style.opacity=`0`,e.style.position=`fixed`,e.style.pointerEvents=`none`,e}An(Fn,`createFocusGuard`);var In=function(){return In=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},In.apply(this,arguments)};function Ln(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n}function Rn(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,a;r<i;r++)(a||!(r in t))&&(a||=Array.prototype.slice.call(t,0,r),a[r]=t[r]);return e.concat(a||Array.prototype.slice.call(t))}var zn=`right-scroll-bar-position`,Bn=`width-before-scroll-bar`,Vn=`with-scroll-bars-hidden`,Hn=`--removed-body-scroll-bar-size`;function Un(e,t){return typeof e==`function`?e(t):e&&(e.current=t),e}function Wn(e,t){var n=(0,_.useState)(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(e){var t=n.value;t!==e&&(n.value=e,n.callback(e,t))}}}})[0];return n.callback=t,n.facade}var Gn=typeof window<`u`?_.useLayoutEffect:_.useEffect,Kn=new WeakMap;function qn(e,t){var n=Wn(t||null,function(t){return e.forEach(function(e){return Un(e,t)})});return Gn(function(){var t=Kn.get(n);if(t){var r=new Set(t),i=new Set(e),a=n.current;r.forEach(function(e){i.has(e)||Un(e,null)}),i.forEach(function(e){r.has(e)||Un(e,a)})}Kn.set(n,e)},[e]),n}function Jn(e){return e}function Yn(e,t){t===void 0&&(t=Jn);var n=[],r=!1;return{read:function(){if(r)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(e){var i=t(e,r);return n.push(i),function(){n=n.filter(function(e){return e!==i})}},assignSyncMedium:function(e){for(r=!0;n.length;){var t=n;n=[],t.forEach(e)}n={push:function(t){return e(t)},filter:function(){return n}}},assignMedium:function(e){r=!0;var t=[];if(n.length){var i=n;n=[],i.forEach(e),t=n}var a=function(){var n=t;t=[],n.forEach(e)},o=function(){return Promise.resolve().then(a)};o(),n={push:function(e){t.push(e),o()},filter:function(e){return t=t.filter(e),n}}}}}function Xn(e){e===void 0&&(e={});var t=Yn(null);return t.options=In({async:!0,ssr:!1},e),t}var Zn=function(e){var t=e.sideCar,n=Ln(e,[`sideCar`]);if(!t)throw Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw Error(`Sidecar medium not found`);return _.createElement(r,In({},n))};Zn.isSideCarExport=!0;function Qn(e,t){return e.useMedium(t),Zn}var $n=Xn(),er=function(){},tr=_.forwardRef(function(e,t){var n=_.useRef(null),r=_.useState({onScrollCapture:er,onWheelCapture:er,onTouchMoveCapture:er}),i=r[0],a=r[1],o=e.forwardProps,s=e.children,c=e.className,l=e.removeScrollBar,u=e.enabled,d=e.shards,f=e.sideCar,p=e.noRelative,m=e.noIsolation,h=e.inert,g=e.allowPinchZoom,v=e.as,y=v===void 0?`div`:v,b=e.gapMode,x=Ln(e,[`forwardProps`,`children`,`className`,`removeScrollBar`,`enabled`,`shards`,`sideCar`,`noRelative`,`noIsolation`,`inert`,`allowPinchZoom`,`as`,`gapMode`]),S=f,C=qn([n,t]),w=In(In({},x),i);return _.createElement(_.Fragment,null,u&&_.createElement(S,{sideCar:$n,removeScrollBar:l,shards:d,noRelative:p,noIsolation:m,inert:h,setCallbacks:a,allowPinchZoom:!!g,lockRef:n,gapMode:b}),o?_.cloneElement(_.Children.only(s),In(In({},w),{ref:C})):_.createElement(y,In({},w,{className:c,ref:C}),s))});tr.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},tr.classNames={fullWidth:Bn,zeroRight:zn};var nr=function(){if(typeof __webpack_nonce__<`u`)return __webpack_nonce__};function rr(){if(!document)return null;var e=document.createElement(`style`);e.type=`text/css`;var t=nr();return t&&e.setAttribute(`nonce`,t),e}function ir(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function ar(e){(document.head||document.getElementsByTagName(`head`)[0]).appendChild(e)}var or=function(){var e=0,t=null;return{add:function(n){e==0&&(t=rr())&&(ir(t,n),ar(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},sr=function(){var e=or();return function(t,n){_.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},cr=function(){var e=sr();return function(t){var n=t.styles,r=t.dynamic;return e(n,r),null}},lr={left:0,top:0,right:0,gap:0},ur=function(e){return parseInt(e||``,10)||0},dr=function(e){var t=window.getComputedStyle(document.body),n=t[e===`padding`?`paddingLeft`:`marginLeft`],r=t[e===`padding`?`paddingTop`:`marginTop`],i=t[e===`padding`?`paddingRight`:`marginRight`];return[ur(n),ur(r),ur(i)]},fr=function(e){if(e===void 0&&(e=`margin`),typeof window>`u`)return lr;var t=dr(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},pr=cr(),mr=`data-scroll-locked`,hr=function(e,t,n,r){var i=e.left,a=e.top,o=e.right,s=e.gap;return n===void 0&&(n=`margin`),`\n .${Vn} {\n overflow: hidden ${r};\n padding-right: ${s}px ${r};\n }\n body[${mr}] {\n overflow: hidden ${r};\n overscroll-behavior: contain;\n ${[t&&`position: relative ${r};`,n===`margin`&&`\n padding-left: ${i}px;\n padding-top: ${a}px;\n padding-right: ${o}px;\n margin-left:0;\n margin-top:0;\n margin-right: ${s}px ${r};\n `,n===`padding`&&`padding-right: ${s}px ${r};`].filter(Boolean).join(``)}\n }\n \n .${zn} {\n right: ${s}px ${r};\n }\n \n .${Bn} {\n margin-right: ${s}px ${r};\n }\n \n .${zn} .${zn} {\n right: 0 ${r};\n }\n \n .${Bn} .${Bn} {\n margin-right: 0 ${r};\n }\n \n body[${mr}] {\n ${Hn}: ${s}px;\n }\n`},gr=function(){var e=parseInt(document.body.getAttribute(`data-scroll-locked`)||`0`,10);return isFinite(e)?e:0},_r=function(){_.useEffect(function(){return document.body.setAttribute(mr,(gr()+1).toString()),function(){var e=gr()-1;e<=0?document.body.removeAttribute(mr):document.body.setAttribute(mr,e.toString())}},[])},vr=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,i=r===void 0?`margin`:r;_r();var a=_.useMemo(function(){return fr(i)},[i]);return _.createElement(pr,{styles:hr(a,!t,i,n?``:`!important`)})},yr=!1;if(typeof window<`u`)try{var br=Object.defineProperty({},"passive",{get:function(){return yr=!0,!0}});window.addEventListener(`test`,br,br),window.removeEventListener(`test`,br,br)}catch{yr=!1}var xr=yr?{passive:!1}:!1,Sr=function(e){return e.tagName===`TEXTAREA`},Cr=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!==`hidden`&&!(n.overflowY===n.overflowX&&!Sr(e)&&n[t]===`visible`)},wr=function(e){return Cr(e,`overflowY`)},Tr=function(e){return Cr(e,`overflowX`)},Er=function(e,t){var n=t.ownerDocument,r=t;do{if(typeof ShadowRoot<`u`&&r instanceof ShadowRoot&&(r=r.host),kr(e,r)){var i=Ar(e,r);if(i[1]>i[2])return!0}r=r.parentNode}while(r&&r!==n.body);return!1},Dr=function(e){return[e.scrollTop,e.scrollHeight,e.clientHeight]},Or=function(e){return[e.scrollLeft,e.scrollWidth,e.clientWidth]},kr=function(e,t){return e===`v`?wr(t):Tr(t)},Ar=function(e,t){return e===`v`?Dr(t):Or(t)},jr=function(e,t){return e===`h`&&t===`rtl`?-1:1},Mr=function(e,t,n,r,i){var a=jr(e,window.getComputedStyle(t).direction),o=a*r,s=n.target,c=t.contains(s),l=!1,u=o>0,d=0,f=0;do{if(!s)break;var p=Ar(e,s),m=p[0],h=p[1]-p[2]-a*m;(m||h)&&kr(e,s)&&(d+=h,f+=m);var g=s.parentNode;s=g&&g.nodeType===Node.DOCUMENT_FRAGMENT_NODE?g.host:g}while(!c&&s!==document.body||c&&(t.contains(s)||t===s));return(u&&(i&&Math.abs(d)<1||!i&&o>d)||!u&&(i&&Math.abs(f)<1||!i&&-o>f))&&(l=!0),l},Nr=function(e){return`changedTouches`in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},Pr=function(e){return[e.deltaX,e.deltaY]},Fr=function(e){return e&&`current`in e?e.current:e},Ir=function(e,t){return e[0]===t[0]&&e[1]===t[1]},Lr=function(e){return`\n .block-interactivity-${e} {pointer-events: none;}\n .allow-interactivity-${e} {pointer-events: all;}\n`},Rr=0,zr=[];function Br(e){var t=_.useRef([]),n=_.useRef([0,0]),r=_.useRef(),i=_.useState(Rr++)[0],a=_.useState(cr)[0],o=_.useRef(e);_.useEffect(function(){o.current=e},[e]),_.useEffect(function(){if(e.inert){document.body.classList.add(`block-interactivity-${i}`);var t=Rn([e.lockRef.current],(e.shards||[]).map(Fr),!0).filter(Boolean);return t.forEach(function(e){return e.classList.add(`allow-interactivity-${i}`)}),function(){document.body.classList.remove(`block-interactivity-${i}`),t.forEach(function(e){return e.classList.remove(`allow-interactivity-${i}`)})}}},[e.inert,e.lockRef.current,e.shards]);var s=_.useCallback(function(e,t){if(`touches`in e&&e.touches.length===2||e.type===`wheel`&&e.ctrlKey)return!o.current.allowPinchZoom;var i=Nr(e),a=n.current,s=`deltaX`in e?e.deltaX:a[0]-i[0],c=`deltaY`in e?e.deltaY:a[1]-i[1],l,u=e.target,d=Math.abs(s)>Math.abs(c)?`h`:`v`;if(`touches`in e&&d===`h`&&u.type===`range`)return!1;var f=window.getSelection(),p=f&&f.anchorNode;if(p&&(p===u||p.contains(u)))return!1;var m=Er(d,u);if(!m)return!0;if(m?l=d:(l=d===`v`?`h`:`v`,m=Er(d,u)),!m)return!1;if(!r.current&&`changedTouches`in e&&(s||c)&&(r.current=l),!l)return!0;var h=r.current||l;return Mr(h,t,e,h===`h`?s:c,!0)},[]),c=_.useCallback(function(e){var n=e;if(zr.length&&zr[zr.length-1]===a){var r=`deltaY`in n?Pr(n):Nr(n),i=t.current.filter(function(e){return e.name===n.type&&(e.target===n.target||n.target===e.shadowParent)&&Ir(e.delta,r)})[0];if(i&&i.should)n.cancelable&&n.preventDefault();else if(!i){var c=(o.current.shards||[]).map(Fr).filter(Boolean).filter(function(e){return e.contains(n.target)});(c.length>0?s(n,c[0]):!o.current.noIsolation)&&n.cancelable&&n.preventDefault()}}},[]),l=_.useCallback(function(e,n,r,i){var a={name:e,delta:n,target:r,should:i,shadowParent:Vr(r)};t.current.push(a),setTimeout(function(){t.current=t.current.filter(function(e){return e!==a})},1)},[]),u=_.useCallback(function(e){n.current=Nr(e),r.current=void 0},[]),d=_.useCallback(function(t){l(t.type,Pr(t),t.target,s(t,e.lockRef.current))},[]),f=_.useCallback(function(t){l(t.type,Nr(t),t.target,s(t,e.lockRef.current))},[]);_.useEffect(function(){return zr.push(a),e.setCallbacks({onScrollCapture:d,onWheelCapture:d,onTouchMoveCapture:f}),document.addEventListener(`wheel`,c,xr),document.addEventListener(`touchmove`,c,xr),document.addEventListener(`touchstart`,u,xr),function(){zr=zr.filter(function(e){return e!==a}),document.removeEventListener(`wheel`,c,xr),document.removeEventListener(`touchmove`,c,xr),document.removeEventListener(`touchstart`,u,xr)}},[]);var p=e.removeScrollBar,m=e.inert;return _.createElement(_.Fragment,null,m?_.createElement(a,{styles:Lr(i)}):null,p?_.createElement(vr,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function Vr(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}var Hr=Qn($n,Br),Ur=_.forwardRef(function(e,t){return _.createElement(tr,In({},e,{ref:t,sideCar:Hr}))});Ur.classNames=tr.classNames;var Wr=function(e){return typeof document>`u`?null:(Array.isArray(e)?e[0]:e).ownerDocument.body},Gr=new WeakMap,Kr=new WeakMap,qr={},Jr=0,Yr=function(e){return e&&(e.host||Yr(e.parentNode))},Xr=function(e,t){return t.map(function(t){if(e.contains(t))return t;var n=Yr(t);return n&&e.contains(n)?n:(console.error(`aria-hidden`,t,`in not contained inside`,e,`. Doing nothing`),null)}).filter(function(e){return!!e})},Zr=function(e,t,n,r){var i=Xr(t,Array.isArray(e)?e:[e]);qr[n]||(qr[n]=new WeakMap);var a=qr[n],o=[],s=new Set,c=new Set(i),l=function(e){e&&!s.has(e)&&(s.add(e),l(e.parentNode))};i.forEach(l);var u=function(e){e&&!c.has(e)&&Array.prototype.forEach.call(e.children,function(e){if(s.has(e))u(e);else try{var t=e.getAttribute(r),i=t!==null&&t!==`false`,c=(Gr.get(e)||0)+1,l=(a.get(e)||0)+1;Gr.set(e,c),a.set(e,l),o.push(e),c===1&&i&&Kr.set(e,!0),l===1&&e.setAttribute(n,`true`),i||e.setAttribute(r,`true`)}catch(t){console.error(`aria-hidden: cannot operate on `,e,t)}})};return u(t),s.clear(),Jr++,function(){o.forEach(function(e){var t=Gr.get(e)-1,i=a.get(e)-1;Gr.set(e,t),a.set(e,i),t||(Kr.has(e)||e.removeAttribute(r),Kr.delete(e)),i||e.removeAttribute(n)}),Jr--,Jr||(Gr=new WeakMap,Gr=new WeakMap,Kr=new WeakMap,qr={})}},Qr=function(e,t,n){n===void 0&&(n=`data-aria-hidden`);var r=Array.from(Array.isArray(e)?e:[e]),i=t||Wr(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll(`[aria-live], script`))),Zr(r,i,n,`aria-hidden`)):function(){return null}},$r=Object.defineProperty,ei=(e,t)=>$r(e,`name`,{value:t,configurable:!0}),ti=`Dialog`,[ni,ri]=Ke(ti),[ii,ai]=ni(ti),oi=ei(e=>{let{__scopeDialog:t,children:n,open:r,defaultOpen:i,onOpenChange:a,modal:o=!0}=e,s=_.useRef(null),c=_.useRef(null),[l,u]=wt({prop:r,defaultProp:i??!1,onChange:a,caller:ti}),[d,f]=_.useState(0),[p,m]=_.useState(0);return(0,L.jsx)(ii,{scope:t,triggerRef:s,contentRef:c,contentId:Ht(),titleId:Ht(),descriptionId:Ht(),titlePresent:d>0,descriptionPresent:p>0,setTitleCount:f,setDescriptionCount:m,open:l,onOpenChange:u,onOpenToggle:_.useCallback(()=>u(e=>!e),[u]),modal:o,children:n})},`Dialog`),si=`DialogPortal`,[ci,li]=ni(si,{forceMount:void 0}),ui=ei(e=>{let{__scopeDialog:t,forceMount:n,children:r,container:i}=e,a=ai(si,t);return(0,L.jsx)(ci,{scope:t,forceMount:n,children:_.Children.map(r,e=>(0,L.jsx)(Mt,{present:n||a.open,children:(0,L.jsx)(On,{asChild:!0,container:i,children:e})}))})},`DialogPortal`),di=`DialogOverlay`,fi=_.forwardRef(ei(function(e,t){let n=li(di,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=ai(di,e.__scopeDialog);return a.modal?(0,L.jsx)(Mt,{present:r||a.open,children:(0,L.jsx)(mi,{...i,ref:t})}):null},`DialogOverlay`)),pi=I(`DialogOverlay.RemoveScroll`),mi=_.forwardRef(ei(function(e,t){let{__scopeDialog:n,...r}=e,i=ai(di,n),a=be(t,rn());return(0,L.jsx)(Ur,{as:pi,allowPinchZoom:!0,shards:[i.contentRef],children:(0,L.jsx)(R.div,{"data-state":Ei(i.open),...r,ref:a,style:{pointerEvents:`auto`,...r.style}})})},`DialogOverlayImpl`)),hi=`DialogContent`,gi=_.forwardRef(ei(function(e,t){let n=li(hi,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=ai(hi,e.__scopeDialog);return(0,L.jsx)(Mt,{present:r||a.open,children:a.modal?(0,L.jsx)(_i,{...i,ref:t}):(0,L.jsx)(vi,{...i,ref:t})})},`DialogContent`)),_i=_.forwardRef(ei(function(e,t){let n=ai(hi,e.__scopeDialog),r=_.useRef(null),i=be(t,n.contentRef,r);return _.useEffect(()=>{let e=r.current;if(e)return Qr(e)},[]),(0,L.jsx)(yi,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,onCloseAutoFocus:ut(e.onCloseAutoFocus,e=>{e.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:ut(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;(t.button===2||n)&&e.preventDefault()}),onFocusOutside:ut(e.onFocusOutside,e=>e.preventDefault())})},`DialogContentModal`)),vi=_.forwardRef(ei(function(e,t){let n=ai(hi,e.__scopeDialog),r=_.useRef(!1),i=_.useRef(!1);return(0,L.jsx)(yi,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,t.detail.originalEvent.type===`pointerdown`&&(i.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),t.detail.originalEvent.type===`focusin`&&i.current&&t.preventDefault()}})},`DialogContentNonModal`)),yi=_.forwardRef(ei(function(e,t){let{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:a,...o}=e,s=ai(hi,n);return Pn(),(0,L.jsx)(L.Fragment,{children:(0,L.jsx)(hn,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:a,children:(0,L.jsx)(nn,{role:`dialog`,id:s.contentId,"aria-describedby":s.descriptionPresent?s.descriptionId:void 0,"aria-labelledby":s.titlePresent?s.titleId:void 0,"data-state":Ei(s.open),...o,ref:t,deferPointerDownOutside:!0,onDismiss:()=>s.onOpenChange(!1)})})})},`DialogContentImpl`)),bi=`DialogTitle`,xi=_.forwardRef(ei(function(e,t){let{__scopeDialog:n,...r}=e,i=ai(bi,n),{setTitleCount:a}=i;return ht(()=>(a(e=>e+1),()=>a(e=>e-1)),[a]),(0,L.jsx)(R.h2,{id:i.titleId,...r,ref:t})},`DialogTitle`)),Si=`DialogDescription`,Ci=_.forwardRef(ei(function(e,t){let{__scopeDialog:n,...r}=e,i=ai(Si,n),{setDescriptionCount:a}=i;return ht(()=>(a(e=>e+1),()=>a(e=>e-1)),[a]),(0,L.jsx)(R.p,{id:i.descriptionId,...r,ref:t})},`DialogDescription`)),wi=`DialogClose`,Ti=_.forwardRef(ei(function(e,t){let{__scopeDialog:n,...r}=e,i=ai(wi,n);return(0,L.jsx)(R.button,{type:`button`,...r,ref:t,onClick:ut(e.onClick,()=>i.onOpenChange(!1))})},`DialogClose`));function Ei(e){return e?`open`:`closed`}ei(Ei,`getState`);var Di=Object.defineProperty,Oi=(e,t)=>Di(e,`name`,{value:t,configurable:!0});function ki(e){let[t,n]=_.useState(void 0);return ht(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});let t=new ResizeObserver(t=>{if(!Array.isArray(t)||!t.length)return;let r=t[0],i,a;if(`borderBoxSize`in r){let e=r.borderBoxSize,t=Array.isArray(e)?e[0]:e;i=t.inlineSize,a=t.blockSize}else i=e.offsetWidth,a=e.offsetHeight;n({width:i,height:a})});return t.observe(e,{box:`border-box`}),()=>t.unobserve(e)}n(void 0)},[e]),t}Oi(ki,`useSize`);var Ai=[`top`,`right`,`bottom`,`left`],ji=Math.min,Mi=Math.max,Ni=Math.round,Pi=Math.floor,Fi=e=>({x:e,y:e}),Ii={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function Li(e,t,n){return Mi(e,ji(t,n))}function Ri(e,t){return typeof e==`function`?e(t):e}function zi(e){return e.split(`-`)[0]}function Bi(e){return e.split(`-`)[1]}function Vi(e){return e===`x`?`y`:`x`}function Hi(e){return e===`y`?`height`:`width`}function Ui(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function Wi(e){return Vi(Ui(e))}function Gi(e,t,n){n===void 0&&(n=!1);let r=Bi(e),i=Wi(e),a=Hi(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=ea(o)),[o,ea(o)]}function Ki(e){let t=ea(e);return[qi(e),t,qi(t)]}function qi(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var Ji=[`left`,`right`],Yi=[`right`,`left`],Xi=[`top`,`bottom`],Zi=[`bottom`,`top`];function Qi(e,t,n){switch(e){case`top`:case`bottom`:return n?t?Yi:Ji:t?Ji:Yi;case`left`:case`right`:return t?Xi:Zi;default:return[]}}function $i(e,t,n,r){let i=Bi(e),a=Qi(zi(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(qi)))),a}function ea(e){let t=zi(e);return Ii[t]+e.slice(t.length)}function ta(e){return{top:e.top??0,right:e.right??0,bottom:e.bottom??0,left:e.left??0}}function na(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:ta(e)}function ra(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function ia(e,t,n){let{reference:r,floating:i}=e,a=Ui(t),o=Wi(t),s=Hi(o),c=zi(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}let m=Bi(t);return m&&(p[o]+=f*(m===`end`?1:-1)*(n&&l?-1:1)),p}async function B(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=Ri(t,e),p=na(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=ra(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=ra(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}var aa=50,oa=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:B},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=ia(l,r,c),f=r,p=0,m={};for(let n=0;n<a.length;n++){let h=a[n];if(!h)continue;let{name:g,fn:_}=h,{x:v,y,data:b,reset:x}=await _({x:u,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:m,rects:l,platform:s,elements:{reference:e,floating:t}});u=v??u,d=y??d,m[g]={...m[g],...b},x&&p<aa&&(p++,typeof x==`object`&&(x.placement&&(f=x.placement),x.rects&&(l=x.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):x.rects),{x:u,y:d}=ia(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}},sa=e=>({name:`arrow`,options:e,async fn(t){let{x:n,y:r,placement:i,rects:a,platform:o,elements:s,middlewareData:c}=t,{element:l,padding:u=0}=Ri(e,t)||{};if(l==null)return{};let d=na(u),f={x:n,y:r},p=Wi(i),m=Hi(p),h=await o.getDimensions(l),g=p===`y`,_=g?`top`:`left`,v=g?`bottom`:`right`,y=g?`clientHeight`:`clientWidth`,b=a.reference[m]+a.reference[p]-f[p]-a.floating[m],x=f[p]-a.reference[p],S=await(o.getOffsetParent==null?void 0:o.getOffsetParent(l)),C=S?S[y]:0;(!C||!await(o.isElement==null?void 0:o.isElement(S)))&&(C=s.floating[y]||a.floating[m]);let w=b/2-x/2,T=C/2-h[m]/2-1,E=ji(d[_],T),D=ji(d[v],T),ee=C-h[m]-D,O=C/2-h[m]/2+w,te=Li(E,O,ee),k=!c.arrow&&Bi(i)!=null&&O!==te&&a.reference[m]/2-(O<E?E:D)-h[m]/2<0,A=k?O<E?O-E:O-ee:0;return{[p]:f[p]+A,data:{[p]:te,centerOffset:O-te-A,...k&&{alignmentOffset:A}},reset:k}}}),ca=function(e){return e===void 0&&(e={}),{name:`flip`,options:e,async fn(t){var n;let{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:c}=t,{mainAxis:l=!0,crossAxis:u=!0,fallbackPlacements:d,fallbackStrategy:f=`bestFit`,fallbackAxisSideDirection:p=`none`,flipAlignment:m=!0,...h}=Ri(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=zi(r),_=Ui(o),v=zi(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),b=d||(v||!m?[ea(o)]:Ki(o)),x=p!==`none`;!d&&x&&b.push(...$i(o,m,p,y));let S=[o,...b],C=await s.detectOverflow(t,h),w=[],T=i.flip?.overflows||[];if(l&&w.push(C[g]),u){let e=Gi(r,a,y);w.push(C[e[0]],C[e[1]])}if(T=[...T,{placement:r,overflows:w}],!w.every(e=>e<=0)){let e=(i.flip?.index||0)+1,t=S[e];if(t&&(u!==`alignment`||_===Ui(t)||T.every(e=>Ui(e.placement)!==_||e.overflows[0]>0)))return{data:{index:e,overflows:T},reset:{placement:t}};let n=T.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=T.filter(e=>{if(x){let t=Ui(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o}if(r!==n)return{reset:{placement:n}}}return{}}}};function la(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function ua(e){return Ai.some(t=>e[t]>=0)}var da=function(e){return e===void 0&&(e={}),{name:`hide`,options:e,async fn(t){let{rects:n,platform:r}=t,{strategy:i=`referenceHidden`,...a}=Ri(e,t);switch(i){case`referenceHidden`:{let e=la(await r.detectOverflow(t,{...a,elementContext:`reference`}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:ua(e)}}}case`escaped`:{let e=la(await r.detectOverflow(t,{...a,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:ua(e)}}}default:return{}}}}},fa=new Set([`left`,`top`]);async function pa(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=zi(n),s=Bi(n),c=Ui(n)===`y`,l=fa.has(o)?-1:1,u=a&&c?-1:1,d=Ri(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var ma=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await pa(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},ha=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i,platform:a}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:c={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=Ri(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=Ui(i),p=Vi(f),m=u[p],h=u[f],g=(e,t)=>Li(t+d[e===`y`?`top`:`left`],t,t-d[e===`y`?`bottom`:`right`]);o&&(m=g(p,m)),s&&(h=g(f,h));let _=c.fn({...t,[p]:m,[f]:h});return{..._,data:{x:_.x-n,y:_.y-r,enabled:{[p]:o,[f]:s}}}}}},ga=function(e){return e===void 0&&(e={}),{options:e,fn(t){let{x:n,y:r,placement:i,rects:a,middlewareData:o}=t,{offset:s=0,mainAxis:c=!0,crossAxis:l=!0}=Ri(e,t),u={x:n,y:r},d=Ui(i),f=Vi(d),p=u[f],m=u[d],h=Ri(s,t),g=typeof h==`number`?{mainAxis:h,crossAxis:0}:{mainAxis:h.mainAxis??0,crossAxis:h.crossAxis??0};if(c){let e=f===`y`?`height`:`width`,t=a.reference[f]-a.floating[e]+g.mainAxis,n=a.reference[f]+a.reference[e]-g.mainAxis;p<t?p=t:p>n&&(p=n)}if(l){let e=f===`y`?`width`:`height`,t=fa.has(zi(i)),n=a.reference[d]-a.floating[e]+(t&&o.offset?.[d]||0)+(t?0:g.crossAxis),r=a.reference[d]+a.reference[e]+(t?0:o.offset?.[d]||0)-(t?g.crossAxis:0);m<n?m=n:m>r&&(m=r)}return{[f]:p,[d]:m}}}},_a=function(e){return e===void 0&&(e={}),{name:`size`,options:e,async fn(t){let{placement:n,rects:r,platform:i,elements:a}=t,{apply:o=()=>{},...s}=Ri(e,t),c=await i.detectOverflow(t,s),l=zi(n),u=Bi(n),d=Ui(n)===`y`,{width:f,height:p}=r.floating,m,h;l===`top`||l===`bottom`?(m=l,h=u===(await(i.isRTL==null?void 0:i.isRTL(a.floating))?`start`:`end`)?`left`:`right`):(h=l,m=u===`end`?`top`:`bottom`);let g=p-c.top-c.bottom,_=f-c.left-c.right,v=ji(p-c[m],g),y=ji(f-c[h],_),b=t.middlewareData.shift,x=!b,S=v,C=y;b!=null&&b.enabled.x&&(C=_),b!=null&&b.enabled.y&&(S=g),x&&!u&&(d?C=f-2*Mi(c.left,c.right):S=p-2*Mi(c.top,c.bottom)),await o({...t,availableWidth:C,availableHeight:S});let w=await i.getDimensions(a.floating);return f!==w.width||p!==w.height?{reset:{rects:!0}}:{}}}};function va(){return typeof window<`u`}function ya(e){return Sa(e)?(e.nodeName||``).toLowerCase():`#document`}function ba(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function xa(e){return((Sa(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function Sa(e){return va()?e instanceof Node||e instanceof ba(e).Node:!1}function Ca(e){return va()?e instanceof Element||e instanceof ba(e).Element:!1}function wa(e){return va()?e instanceof HTMLElement||e instanceof ba(e).HTMLElement:!1}function Ta(e){return!va()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof ba(e).ShadowRoot}function Ea(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=La(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function Da(e){return/^(table|td|th)$/.test(ya(e))}function Oa(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var ka=/transform|translate|scale|rotate|perspective|filter/,Aa=/paint|layout|strict|content/,ja=e=>!!e&&e!==`none`,Ma;function Na(e){let t=Ca(e)?La(e):e;return ja(t.transform)||ja(t.translate)||ja(t.scale)||ja(t.rotate)||ja(t.perspective)||!Fa()&&(ja(t.backdropFilter)||ja(t.filter))||ka.test(t.willChange||``)||Aa.test(t.contain||``)}function Pa(e){let t=za(e);for(;wa(t)&&!Ia(t);){if(Na(t))return t;if(Oa(t))return null;t=za(t)}return null}function Fa(){return Ma??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),Ma}function Ia(e){return/^(html|body|#document)$/.test(ya(e))}function La(e){return ba(e).getComputedStyle(e)}function Ra(e){return Ca(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function za(e){if(ya(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||Ta(e)&&e.host||xa(e);return Ta(t)?t.host:t}function Ba(e){let t=za(e);return Ia(t)?(e.ownerDocument||e).body:wa(t)&&Ea(t)?t:Ba(t)}function Va(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=Ba(e),i=r===e.ownerDocument?.body,a=ba(r);if(i){let e=Ha(a);return t.concat(a,a.visualViewport||[],Ea(r)?r:[],e&&n?Va(e):[])}return t.concat(r,Va(r,[],n))}function Ha(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function Ua(e){let t=La(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=wa(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=Ni(n)!==a||Ni(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function Wa(e){return Ca(e)?e:e.contextElement}function Ga(e){let t=Wa(e);if(!wa(t))return Fi(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=Ua(t),o=(a?Ni(n.width):n.width)/r,s=(a?Ni(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var Ka=Fi(0);function qa(e){let t=ba(e);return!Fa()||!t.visualViewport?Ka:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function Ja(e,t,n){return t===void 0&&(t=!1),!!n&&t&&n===ba(e)}function Ya(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=Wa(e),o=Fi(1);t&&(r?Ca(r)&&(o=Ga(r)):o=Ga(e));let s=Ja(a,n,r)?qa(a):Fi(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a&&r){let e=ba(a),t=Ca(r)?ba(r):r,n=e,i=Ha(n);for(;i&&t!==n;){let e=Ga(i),t=i.getBoundingClientRect(),r=La(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=ba(i),i=Ha(n)}}return ra({width:u,height:d,x:c,y:l})}function Xa(e,t){let n=Ra(e).scrollLeft;return t?t.left+n:Ya(xa(e)).left+n}function Za(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-Xa(e,n),y:n.top+t.scrollTop}}function Qa(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=xa(r),s=t?Oa(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=Fi(1),u=Fi(0),d=wa(r);if((d||!a)&&((ya(r)!==`body`||Ea(o))&&(c=Ra(r)),d)){let e=Ya(r);l=Ga(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?Za(o,c):Fi(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function $a(e){return e.getClientRects?Array.from(e.getClientRects()):[]}function eo(e){let t=Ra(e),n=e.ownerDocument.body,r=Mi(e.scrollWidth,e.clientWidth,n.scrollWidth,n.clientWidth),i=Mi(e.scrollHeight,e.clientHeight,n.scrollHeight,n.clientHeight),a=-t.scrollLeft+Xa(e),o=-t.scrollTop;return La(n).direction===`rtl`&&(a+=Mi(e.clientWidth,n.clientWidth)-r),{width:r,height:i,x:a,y:o}}var to=25;function no(e,t,n){n===void 0&&(n=`viewport`);let r=n===`layoutViewport`,i=ba(e),a=xa(e),o=i.visualViewport,s=a.clientWidth,c=a.clientHeight,l=0,u=0;if(o){let e=!Fa()||t===`fixed`;r?e||(l=-o.offsetLeft,u=-o.offsetTop):(s=o.width,c=o.height,e&&(l=o.offsetLeft,u=o.offsetTop))}if(Xa(a)<=0){let e=a.ownerDocument,t=e.body,n=getComputedStyle(t),r=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,i=Math.abs(a.clientWidth-t.clientWidth-r),o=getComputedStyle(a).scrollbarGutter===`stable both-edges`?i/2:i;o<=to&&(s-=o)}return{width:s,height:c,x:l,y:u}}function ro(e,t){let n=Ya(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=Ga(e);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function io(e,t,n){let r;if(t===`viewport`||t===`layoutViewport`)r=no(e,n,t);else if(t===`document`)r=eo(xa(e));else if(Ca(t))r=ro(t,n);else{let n=qa(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return ra(r)}function ao(e,t){let n=t.get(e);if(n)return n;let r=Va(e,[],!1).filter(e=>Ca(e)&&ya(e)!==`body`),i=null,a=La(e).position===`fixed`,o=a?za(e):e;for(;Ca(o)&&!Ia(o);){let e=La(o),t=Na(o),n=i?i.position:a?`fixed`:``;!t&&(n===`fixed`||n===`absolute`&&e.position===`static`)?r=r.filter(e=>e!==o):i=e,o=za(o)}return t.set(e,r),r}function oo(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?Oa(t)?[]:ao(t,this._c):[].concat(n),r],o=io(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e<a.length;e++){let n=io(t,a[e],i);s=Mi(n.top,s),c=ji(n.right,c),l=ji(n.bottom,l),u=Mi(n.left,u)}return{width:c-u,height:l-s,x:u,y:s}}function so(e){let{width:t,height:n}=Ua(e);return{width:t,height:n}}function co(e,t,n){let r=wa(t),i=xa(t),a=n===`fixed`,o=Ya(e,!0,a,t),s={scrollLeft:0,scrollTop:0},c=Fi(0);if((r||!a)&&((ya(t)!==`body`||Ea(i))&&(s=Ra(t)),r)){let e=Ya(t,!0,a,t);c.x=e.x+t.clientLeft,c.y=e.y+t.clientTop}!r&&i&&(c.x=Xa(i));let l=i&&!r&&!a?Za(i,s):Fi(0);return{x:o.left+s.scrollLeft-c.x-l.x,y:o.top+s.scrollTop-c.y-l.y,width:o.width,height:o.height}}function lo(e){return La(e).position===`static`}function uo(e,t){if(!wa(e)||La(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return xa(e)===n&&(n=n.ownerDocument.body),n}function fo(e,t){let n=ba(e);if(Oa(e))return n;if(!wa(e)){let t=za(e);for(;t&&!Ia(t);){if(Ca(t)&&!lo(t))return t;t=za(t)}return n}let r=uo(e,t);for(;r&&Da(r)&&lo(r);)r=uo(r,t);return r&&Ia(r)&&lo(r)&&!Na(r)?n:r||Pa(e)||n}var po=async function(e){let t=this.getOffsetParent||fo,n=this.getDimensions,r=await n(e.floating);return{reference:co(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function mo(e){return La(e).direction===`rtl`}var ho={convertOffsetParentRelativeRectToViewportRelativeRect:Qa,getDocumentElement:xa,getClippingRect:oo,getOffsetParent:fo,getElementRects:po,getClientRects:$a,getDimensions:so,getScale:Ga,isElement:Ca,isRTL:mo};function go(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function _o(e,t,n){let r=null,i,a=xa(e);function o(){var e;clearTimeout(i),(e=r)==null||e.disconnect(),r=null}function s(n,c){n===void 0&&(n=!1),c===void 0&&(c=1),o();let l=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=l;if(n||t(),!f||!p)return;let m=Pi(d),h=Pi(a.clientWidth-(u+f)),g=Pi(a.clientHeight-(d+p)),_=Pi(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:Mi(0,ji(1,c))||1},y=!0;function b(t){let n=t[0].intersectionRatio;if(!go(l,e.getBoundingClientRect()))return s();if(n!==c){if(!y)return s();n?s(!1,n):i=setTimeout(()=>{s(!1,1e-7)},1e3)}y=!1}try{r=new IntersectionObserver(b,{...v,root:a.ownerDocument})}catch{r=new IntersectionObserver(b,v)}r.observe(e)}let c=ba(e),l=()=>s(n);return c.addEventListener(`resize`,l),s(!0),()=>{c.removeEventListener(`resize`,l),o()}}function vo(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=Wa(e),u=i||a?[...l?Va(l):[],...t?Va(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n),a&&e.addEventListener(`resize`,n)});let d=l&&s?_o(l,n,a):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?Ya(e):null;c&&g();function g(){let t=Ya(e);h&&!go(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var yo=ma,bo=ha,xo=ca,So=_a,Co=da,wo=sa,To=ga,Eo=(e,t,n)=>{let r=new Map,i=n??{},a={...ho,...i.platform,_c:r};return oa(e,t,{...i,platform:a})},Do=typeof document<`u`?_.useLayoutEffect:function(){};function Oo(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e==`function`&&e.toString()===t.toString())return!0;let n,r,i;if(e&&t&&typeof e==`object`){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!Oo(e[r],t[r]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,i[r]))return!1;for(r=n;r--!==0;){let n=i[r];if(!(n===`_owner`&&e.$$typeof)&&!Oo(e[n],t[n]))return!1}return!0}return e!==e&&t!==t}function ko(e){return typeof window>`u`?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Ao(e,t){let n=ko(e);return Math.round(t*n)/n}function jo(e){let t=_.useRef(e);return Do(()=>{t.current=e}),t}function Mo(e){e===void 0&&(e={});let{placement:t=`bottom`,strategy:n=`absolute`,middleware:r=[],platform:i,elements:{reference:a,floating:o}={},transform:s=!0,whileElementsMounted:c,open:l}=e,[u,d]=_.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[f,p]=_.useState(r);Oo(f,r)||p(r);let[m,h]=_.useState(null),[g,y]=_.useState(null),b=_.useCallback(e=>{e!==w.current&&(w.current=e,h(e))},[]),x=_.useCallback(e=>{e!==T.current&&(T.current=e,y(e))},[]),S=a||m,C=o||g,w=_.useRef(null),T=_.useRef(null),E=_.useRef(u),D=c!=null,ee=jo(c),O=jo(i),te=jo(l),k=_.useCallback(()=>{if(!w.current||!T.current)return;let e={placement:t,strategy:n,middleware:f};O.current&&(e.platform=O.current),Eo(w.current,T.current,e).then(e=>{let t={...e,isPositioned:te.current!==!1};A.current&&!Oo(E.current,t)&&(E.current=t,v.flushSync(()=>{d(t)}))})},[f,t,n,O,te]);Do(()=>{l===!1&&E.current.isPositioned&&(E.current.isPositioned=!1,d(e=>({...e,isPositioned:!1})))},[l]);let A=_.useRef(!1);Do(()=>(A.current=!0,()=>{A.current=!1}),[]),Do(()=>{if(S&&(w.current=S),C&&(T.current=C),S&&C){if(ee.current)return ee.current(S,C,k);k()}},[S,C,k,ee,D]);let ne=_.useMemo(()=>({reference:w,floating:T,setReference:b,setFloating:x}),[b,x]),re=_.useMemo(()=>({reference:S,floating:C}),[S,C]),j=_.useMemo(()=>{let e={position:n,left:0,top:0};if(!re.floating)return e;let t=Ao(re.floating,u.x),r=Ao(re.floating,u.y);return s?{...e,transform:`translate(`+t+`px, `+r+`px)`,...ko(re.floating)>=1.5&&{willChange:`transform`}}:{position:n,left:t,top:r}},[n,s,re.floating,u.x,u.y]);return _.useMemo(()=>({...u,update:k,refs:ne,elements:re,floatingStyles:j}),[u,k,ne,re,j])}var No=e=>{function t(e){return{}.hasOwnProperty.call(e,`current`)}return{name:`arrow`,options:e,fn(n){let{element:r,padding:i}=typeof e==`function`?e(n):e;return r&&t(r)?r.current==null?{}:wo({element:r.current,padding:i}).fn(n):r?wo({element:r,padding:i}).fn(n):{}}}},Po=(e,t)=>{let n=yo(e);return{name:n.name,fn:n.fn,options:[e,t]}},Fo=(e,t)=>{let n=bo(e);return{name:n.name,fn:n.fn,options:[e,t]}},Io=(e,t)=>({fn:To(e).fn,options:[e,t]}),Lo=(e,t)=>{let n=xo(e);return{name:n.name,fn:n.fn,options:[e,t]}},Ro=(e,t)=>{let n=So(e);return{name:n.name,fn:n.fn,options:[e,t]}},zo=(e,t)=>{let n=Co(e);return{name:n.name,fn:n.fn,options:[e,t]}},Bo=(e,t)=>{let n=No(e);return{name:n.name,fn:n.fn,options:[e,t]}},Vo=Object.defineProperty,Ho=(e,t)=>Vo(e,`name`,{value:t,configurable:!0}),V=`Popper`,[Uo,Wo]=Ke(V),[Go,Ko]=Uo(V),qo=Ho(e=>{let{__scopePopper:t,children:n}=e,[r,i]=_.useState(null),[a,o]=_.useState(void 0);return(0,L.jsx)(Go,{scope:t,anchor:r,onAnchorChange:i,placementState:a,setPlacementState:o,children:n})},`Popper`),Jo=`PopperAnchor`,Yo=_.forwardRef(Ho(function(e,t){let{__scopePopper:n,virtualRef:r,...i}=e,a=Ko(Jo,n),o=_.useRef(null),s=a.onAnchorChange,c=be(t,_.useCallback(e=>{o.current=e,e&&s(e)},[s])),l=_.useRef(null);_.useEffect(()=>{if(!r)return;let e=l.current;l.current=r.current,e!==l.current&&s(l.current)});let u=a.placementState&&ns(a.placementState),d=u?.[0],f=u?.[1];return r?null:(0,L.jsx)(R.div,{"data-radix-popper-side":d,"data-radix-popper-align":f,...i,ref:c})},`PopperAnchor`)),Xo=`PopperContent`,[Zo,Qo]=Uo(Xo),$o=_.forwardRef(Ho(function(e,t){let{__scopePopper:n,side:r=`bottom`,sideOffset:i=0,align:a=`center`,alignOffset:o=0,arrowPadding:s=0,avoidCollisions:c=!0,collisionBoundary:l=[],collisionPadding:u=0,sticky:d=`partial`,hideWhenDetached:f=!1,updatePositionStrategy:p=`optimized`,onPlaced:m,...h}=e,g=Ko(Xo,n),[v,y]=_.useState(null),b=be(t,y),[x,S]=_.useState(null),C=ki(x),w=C?.width??0,T=C?.height??0,E=r+(a===`center`?``:`-`+a),D=typeof u==`number`?u:{top:0,right:0,bottom:0,left:0,...u},ee=Array.isArray(l)?l:[l],O=ee.length>0,te={padding:D,boundary:ee.filter(es),altBoundary:O},{refs:k,floatingStyles:A,placement:ne,isPositioned:re,middlewareData:j}=Mo({strategy:`fixed`,placement:E,whileElementsMounted:Ho((...e)=>vo(...e,{animationFrame:p===`always`}),`whileElementsMounted`),elements:{reference:g.anchor},middleware:[Po({mainAxis:i+T,alignmentAxis:o}),c&&Fo({mainAxis:!0,crossAxis:!1,limiter:d===`partial`?Io():void 0,...te}),c&&Lo({...te}),Ro({...te,apply:Ho(({elements:e,rects:t,availableWidth:n,availableHeight:r})=>{let{width:i,height:a}=t.reference,o=e.floating.style;o.setProperty(`--radix-popper-available-width`,`${n}px`),o.setProperty(`--radix-popper-available-height`,`${r}px`),o.setProperty(`--radix-popper-anchor-width`,`${i}px`),o.setProperty(`--radix-popper-anchor-height`,`${a}px`)},`apply`)}),x&&Bo({element:x,padding:s}),ts({arrowWidth:w,arrowHeight:T}),f&&zo({strategy:`referenceHidden`,...te,boundary:O?te.boundary:void 0})]}),M=g.setPlacementState;ht(()=>(M(ne),()=>{M(void 0)}),[ne,M]);let[ie,ae]=ns(ne),oe=Jt(m);ht(()=>{re&&oe?.()},[re,oe]);let se=j.arrow?.x,ce=j.arrow?.y,le=j.arrow?.centerOffset!==0,[ue,de]=_.useState();return ht(()=>{v&&de(window.getComputedStyle(v).zIndex)},[v]),(0,L.jsx)(`div`,{ref:k.setFloating,"data-radix-popper-content-wrapper":``,style:{...A,transform:re?A.transform:`translate(0, -200%)`,minWidth:`max-content`,zIndex:ue,"--radix-popper-transform-origin":[j.transformOrigin?.x,j.transformOrigin?.y].join(` `),...j.hide?.referenceHidden&&{visibility:`hidden`,pointerEvents:`none`}},dir:e.dir,children:(0,L.jsx)(Zo,{scope:n,placedSide:ie,placedAlign:ae,onArrowChange:S,arrowX:se,arrowY:ce,shouldHideArrow:le,children:(0,L.jsx)(R.div,{"data-side":ie,"data-align":ae,...h,ref:b,style:{...h.style,animation:re?h.style?.animation:`none`}})})})},`PopperContent`));function es(e){return e!==null}Ho(es,`isNotNull`);var ts=Ho(e=>({name:`transformOrigin`,options:e,fn(t){let{placement:n,rects:r,middlewareData:i}=t,a=i.arrow?.centerOffset!==0,o=a?0:e.arrowWidth,s=a?0:e.arrowHeight,[c,l]=ns(n),u={start:`0%`,center:`50%`,end:`100%`}[l],d=(i.arrow?.x??0)+o/2,f=(i.arrow?.y??0)+s/2,p=``,m=``;return c===`bottom`?(p=a?u:`${d}px`,m=`${-s}px`):c===`top`?(p=a?u:`${d}px`,m=`${r.floating.height+s}px`):c===`right`?(p=`${-s}px`,m=a?u:`${f}px`):c===`left`&&(p=`${r.floating.width+s}px`,m=a?u:`${f}px`),{data:{x:p,y:m}}}}),`transformOrigin`);function ns(e){let[t,n=`center`]=e.split(`-`);return[t,n]}Ho(ns,`getSideAndAlignFromPlacement`);var rs=qo,is=Yo,as=$o,os=Object.defineProperty,ss=(e,t)=>os(e,`name`,{value:t,configurable:!0}),cs=!1;function ls(){let[e,t]=_.useState(cs);return _.useEffect(()=>{cs||(cs=!0,t(!0))},[]),e}ss(ls,`useIsHydrated`);var us=_.useSyncExternalStore;function ds(){return()=>{}}ss(ds,`subscribe`);function fs(){return us(ds,()=>!0,()=>!1)}ss(fs,`useIsHydratedModern`);var ps=typeof us==`function`?fs:ls,ms=Object.defineProperty,hs=(e,t)=>ms(e,`name`,{value:t,configurable:!0}),gs=`rovingFocusGroup.onEntryFocus`,_s={bubbles:!1,cancelable:!0},vs=`RovingFocusGroup`,[ys,bs,xs]=Xe(vs),[Ss,Cs]=Ke(vs,[xs]),[ws,Ts]=Ss(vs),Es=_.forwardRef(hs(function(e,t){return(0,L.jsx)(ys.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,L.jsx)(ys.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,L.jsx)(Ds,{...e,ref:t})})})},`RovingFocusGroup`)),Ds=_.forwardRef(hs(function(e,t){let{__scopeRovingFocusGroup:n,orientation:r,loop:i=!1,dir:a,currentTabStopId:o,defaultCurrentTabStopId:s,onCurrentTabStopIdChange:c,onEntryFocus:l,preventScrollOnEntryFocus:u=!1,...d}=e,f=_.useRef(null),p=be(t,f),m=z(a),[h,g]=wt({prop:o,defaultProp:s??null,onChange:c,caller:vs}),[v,y]=_.useState(!1),b=Jt(l),x=bs(n),S=_.useRef(!1),[C,w]=_.useState(0);return _.useEffect(()=>{let e=f.current;if(e)return e.addEventListener(gs,b),()=>e.removeEventListener(gs,b)},[b]),(0,L.jsx)(ws,{scope:n,orientation:r,dir:m,loop:i,currentTabStopId:h,onItemFocus:_.useCallback(e=>g(e),[g]),onItemShiftTab:_.useCallback(()=>y(!0),[]),onFocusableItemAdd:_.useCallback(()=>w(e=>e+1),[]),onFocusableItemRemove:_.useCallback(()=>w(e=>e-1),[]),children:(0,L.jsx)(R.div,{tabIndex:v||C===0?-1:0,"data-orientation":r,...d,ref:p,style:{outline:`none`,...e.style},onMouseDown:ut(e.onMouseDown,()=>{S.current=!0}),onFocus:ut(e.onFocus,e=>{let t=!S.current;if(e.target===e.currentTarget&&t&&!v){let t=new CustomEvent(gs,_s);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=x().filter(e=>e.focusable);Ns([e.find(e=>e.active),e.find(e=>e.id===h),...e].filter(Boolean).map(e=>e.ref.current),u)}}S.current=!1}),onBlur:ut(e.onBlur,()=>y(!1))})})},`RovingFocusGroupImpl`)),Os=`RovingFocusGroupItem`,ks=_.forwardRef(hs(function(e,t){let{__scopeRovingFocusGroup:n,focusable:r=!0,active:i=!1,tabStopId:a,children:o,...s}=e,c=Ht(),l=a||c,u=Ts(Os,n),d=u.currentTabStopId===l,f=bs(n),{onFocusableItemAdd:p,onFocusableItemRemove:m,currentTabStopId:h}=u,g=ps();return ht(()=>{if(g&&r)return p(),()=>m()},[g,r,p,m]),_.useEffect(()=>{if(!g&&r)return p(),()=>m()},[g,r,p,m]),(0,L.jsx)(ys.ItemSlot,{scope:n,id:l,focusable:r,active:i,children:(0,L.jsx)(R.span,{tabIndex:d?0:-1,"data-orientation":u.orientation,...s,ref:t,onMouseDown:ut(e.onMouseDown,e=>{r?u.onItemFocus(l):e.preventDefault()}),onFocus:ut(e.onFocus,()=>u.onItemFocus(l)),onKeyDown:ut(e.onKeyDown,e=>{if(e.key===`Tab`&&e.shiftKey){u.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let t=Ms(e,u.orientation,u.dir);if(t!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let n=f().filter(e=>e.focusable).map(e=>e.ref.current);if(t===`last`)n.reverse();else if(t===`prev`||t===`next`){t===`prev`&&n.reverse();let r=n.indexOf(e.currentTarget);n=u.loop?Ps(n,r+1):n.slice(r+1)}setTimeout(()=>Ns(n))}}),children:typeof o==`function`?o({isCurrentTabStop:d,hasTabStop:h!=null}):o})})},`RovingFocusGroupItem`)),As={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function js(e,t){return t===`rtl`?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}hs(js,`getDirectionAwareKey`);function Ms(e,t,n){let r=js(e.key,n);if(!(t===`vertical`&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===`horizontal`&&[`ArrowUp`,`ArrowDown`].includes(r)))return As[r]}hs(Ms,`getFocusIntent`);function Ns(e,t=!1){let n=document.activeElement;for(let r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}hs(Ns,`focusFirst`);function Ps(e,t){return e.map((n,r)=>e[(t+r)%e.length])}hs(Ps,`wrapArray`);var Fs=Es,Is=ks,Ls=Object.defineProperty,Rs=_.forwardRef(((e,t)=>Ls(e,`name`,{value:t,configurable:!0}))(function(e,t){return(0,L.jsx)(R.label,{...e,ref:t,onMouseDown:t=>{t.target.closest(`button, input, select, textarea`)||(e.onMouseDown?.(t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}})},`Label`)),zs=Object.defineProperty,Bs=(e,t)=>zs(e,`name`,{value:t,configurable:!0}),Vs=`Switch`,[Hs,Us]=Ke(Vs),[Ws,Gs]=Hs(Vs);function Ks(e){let{__scopeSwitch:t,checked:n,children:r,defaultChecked:i,disabled:a,form:o,name:s,onCheckedChange:c,required:l,value:u=`on`,internal_do_not_use_render:d}=e,[f,p]=wt({prop:n,defaultProp:i??!1,onChange:c,caller:Vs}),[m,h]=_.useState(null),[g,v]=_.useState(null),y=_.useRef(!1),[b,x]=_.useReducer(e=>e+1,0),S={checked:f,setChecked:p,disabled:a,control:m,setControl:h,name:s,form:o,value:u,hasConsumerStoppedPropagationRef:y,userInteractionCount:b,onUserInteraction:x,required:l,defaultChecked:i,isFormControl:!m||!!o||!!m.closest(`form`),bubbleInput:g,setBubbleInput:v};return(0,L.jsx)(Ws,{scope:t,...S,children:ec(d)?d(S):r})}Bs(Ks,`SwitchProvider`);var qs=`SwitchTrigger`,Js=_.forwardRef(Bs(function({__scopeSwitch:e,onClick:t,...n},r){let{control:i,form:a,value:o,disabled:s,checked:c,required:l,setControl:u,setChecked:d,hasConsumerStoppedPropagationRef:f,onUserInteraction:p,isFormControl:m,bubbleInput:h}=Gs(qs,e),g=be(r,u),v=_.useRef(c);return _.useEffect(()=>{let e=a?i?.ownerDocument.getElementById(a):i?.form;if(e instanceof HTMLFormElement){let t=Bs(()=>d(v.current),`reset`);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[i,a,d]),(0,L.jsx)(R.button,{type:`button`,role:`switch`,"aria-checked":c,"aria-required":l,"data-state":tc(c),"data-disabled":s?``:void 0,disabled:s,value:o,...n,ref:g,onClick:ut(t,e=>{p(),d(e=>!e),h&&m&&(f.current=e.isPropagationStopped(),f.current||e.stopPropagation())})})},`SwitchTrigger`)),Ys=_.forwardRef(Bs(function(e,t){let{__scopeSwitch:n,name:r,checked:i,defaultChecked:a,required:o,disabled:s,value:c,onCheckedChange:l,form:u,...d}=e;return(0,L.jsx)(Ks,{__scopeSwitch:n,checked:i,defaultChecked:a,disabled:s,required:o,onCheckedChange:l,name:r,form:u,value:c,internal_do_not_use_render:({isFormControl:e})=>(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(Js,{...d,ref:t,__scopeSwitch:n}),e&&(0,L.jsx)($s,{__scopeSwitch:n})]})})},`Switch`)),Xs=`SwitchThumb`,Zs=_.forwardRef(Bs(function(e,t){let{__scopeSwitch:n,...r}=e,i=Gs(Xs,n);return(0,L.jsx)(R.span,{"data-state":tc(i.checked),"data-disabled":i.disabled?``:void 0,...r,ref:t})},`SwitchThumb`)),Qs=`SwitchBubbleInput`,$s=_.forwardRef(Bs(function({__scopeSwitch:e,onClick:t,...n},r){let{control:i,hasConsumerStoppedPropagationRef:a,userInteractionCount:o,checked:s,defaultChecked:c,required:l,disabled:u,name:d,value:f,form:p,bubbleInput:m,setBubbleInput:h}=Gs(Qs,e),g=be(r,h),v=ki(i),y=_.useRef(!1),b=_.useRef(s),x=_.useRef(o);_.useEffect(()=>{let e=m;if(!e)return;let t=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(t,`checked`).set,r=o!==x.current;x.current=o;let i=b.current!==s;b.current=s;let c=!(r&&a.current);if(i&&n){y.current=!r;let t=new Event(`click`,{bubbles:c});n.call(e,s),e.dispatchEvent(t),y.current=!1}},[m,s,a,o]);let S=_.useRef(s);return(0,L.jsx)(R.input,{type:`checkbox`,"aria-hidden":!0,defaultChecked:c??S.current,required:l,disabled:u,name:d,value:f,form:p,...n,tabIndex:-1,ref:g,onClick:ut(t,e=>{y.current&&e.stopPropagation()}),style:{...n.style,...v,position:`absolute`,pointerEvents:`none`,opacity:0,margin:0,transform:`translateX(-100%)`}})},`SwitchBubbleInput`));function ec(e){return typeof e==`function`}Bs(ec,`isFunction`);function tc(e){return e?`checked`:`unchecked`}Bs(tc,`getState`);var nc=Object.defineProperty,rc=(e,t)=>nc(e,`name`,{value:t,configurable:!0}),ic=`Tabs`,[ac,oc]=Ke(ic,[Cs]),sc=Cs(),[cc,lc]=ac(ic),uc=_.forwardRef(rc(function(e,t){let{__scopeTabs:n,value:r,onValueChange:i,defaultValue:a,orientation:o=`horizontal`,dir:s,activationMode:c=`automatic`,...l}=e,u=z(s),[d,f]=wt({prop:r,onChange:i,defaultProp:a??``,caller:ic});return(0,L.jsx)(cc,{scope:n,baseId:Ht(),value:d,onValueChange:f,orientation:o,dir:u,activationMode:c,children:(0,L.jsx)(R.div,{dir:u,"data-orientation":o,...l,ref:t})})},`Tabs`)),dc=`TabsList`,fc=_.forwardRef(rc(function(e,t){let{__scopeTabs:n,loop:r=!0,...i}=e,a=lc(dc,n),o=sc(n);return(0,L.jsx)(Fs,{asChild:!0,...o,orientation:a.orientation,dir:a.dir,loop:r,children:(0,L.jsx)(R.div,{role:`tablist`,"aria-orientation":a.orientation,...i,ref:t})})},`TabsList`)),pc=`TabsTrigger`,mc=_.forwardRef(rc(function(e,t){let{__scopeTabs:n,value:r,disabled:i=!1,...a}=e,o=lc(pc,n),s=sc(n),c=_c(o.baseId,r),l=vc(o.baseId,r),u=r===o.value;return(0,L.jsx)(Is,{asChild:!0,...s,focusable:!i,active:u,children:(0,L.jsx)(R.button,{type:`button`,role:`tab`,"aria-selected":u,"aria-controls":l,"data-state":u?`active`:`inactive`,"data-disabled":i?``:void 0,disabled:i,id:c,...a,ref:t,onMouseDown:ut(e.onMouseDown,e=>{!i&&e.button===0&&e.ctrlKey===!1?o.onValueChange(r):e.preventDefault()}),onKeyDown:ut(e.onKeyDown,e=>{i||e.target!==e.currentTarget||[` `,`Enter`].includes(e.key)&&o.onValueChange(r)}),onFocus:ut(e.onFocus,()=>{let e=o.activationMode!==`manual`;!u&&!i&&e&&o.onValueChange(r)})})})},`TabsTrigger`)),hc=`TabsContent`,gc=_.forwardRef(rc(function(e,t){let{__scopeTabs:n,value:r,forceMount:i,children:a,...o}=e,s=lc(hc,n),c=_c(s.baseId,r),l=vc(s.baseId,r),u=r===s.value,d=_.useRef(u);return _.useEffect(()=>{let e=requestAnimationFrame(()=>d.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,L.jsx)(Mt,{present:i||u,children:({present:n})=>(0,L.jsx)(R.div,{"data-state":u?`active`:`inactive`,"data-orientation":s.orientation,role:`tabpanel`,"aria-labelledby":c,hidden:!n,id:l,tabIndex:0,...o,ref:t,style:{...e.style,animationDuration:d.current?`0s`:void 0},children:n&&a})})},`TabsContent`));function _c(e,t){return`${e}-trigger-${t}`}rc(_c,`makeTriggerId`);function vc(e,t){return`${e}-content-${t}`}rc(vc,`makeContentId`);var yc=uc,bc=fc,xc=mc,Sc=gc,Cc=Object.defineProperty,wc=(e,t)=>Cc(e,`name`,{value:t,configurable:!0}),[Tc,Ec]=Ke(`Tooltip`,[Wo]),Dc=Wo(),Oc=`TooltipProvider`,kc=700,Ac=`tooltip.open`,[jc,Mc]=Tc(Oc),Nc=wc(e=>{let{__scopeTooltip:t,delayDuration:n=kc,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:a}=e,o=_.useRef(!0),s=_.useRef(!1),c=_.useRef(0);return _.useEffect(()=>{let e=c.current;return()=>window.clearTimeout(e)},[]),(0,L.jsx)(jc,{scope:t,isOpenDelayedRef:o,delayDuration:n,onOpen:_.useCallback(()=>{r<=0||(window.clearTimeout(c.current),o.current=!1)},[r]),onClose:_.useCallback(()=>{r<=0||(window.clearTimeout(c.current),c.current=window.setTimeout(()=>o.current=!0,r))},[r]),isPointerInTransitRef:s,onPointerInTransitChange:_.useCallback(e=>{s.current=e},[]),disableHoverableContent:i,children:a})},`TooltipProvider`),Pc=`Tooltip`,[Fc,Ic]=Tc(Pc),Lc=wc(e=>{let{__scopeTooltip:t,children:n,open:r,defaultOpen:i,onOpenChange:a,disableHoverableContent:o,delayDuration:s}=e,c=Mc(Pc,e.__scopeTooltip),l=Dc(t),[u,d]=_.useState(null),[f,p]=_.useState(void 0),m=Ht(),h=_.useRef(0),g=o??c.disableHoverableContent,v=s??c.delayDuration,y=_.useRef(!1),[b,x]=wt({prop:r,defaultProp:i??!1,onChange:wc(e=>{e?(c.onOpen(),document.dispatchEvent(new CustomEvent(Ac))):c.onClose(),a?.(e)},`onChange`),caller:Pc}),S=_.useMemo(()=>b?y.current?`delayed-open`:`instant-open`:`closed`,[b]),C=_.useCallback(()=>{window.clearTimeout(h.current),h.current=0,y.current=!1,x(!0)},[x]),w=_.useCallback(()=>{window.clearTimeout(h.current),h.current=0,x(!1)},[x]),T=_.useCallback(()=>{window.clearTimeout(h.current),h.current=window.setTimeout(()=>{y.current=!0,x(!0),h.current=0},v)},[v,x]);_.useEffect(()=>()=>{h.current&&=(window.clearTimeout(h.current),0)},[]);let E=f??m;return(0,L.jsx)(rs,{...l,children:(0,L.jsx)(Fc,{scope:t,contentId:E,setContentId:p,open:b,stateAttribute:S,trigger:u,onTriggerChange:d,onTriggerEnter:_.useCallback(()=>{c.isOpenDelayedRef.current?T():C()},[c.isOpenDelayedRef,T,C]),onTriggerLeave:_.useCallback(()=>{g?w():(window.clearTimeout(h.current),h.current=0)},[w,g]),onOpen:C,onClose:w,disableHoverableContent:g,children:n})})},`Tooltip`),Rc=`TooltipTrigger`,zc=_.forwardRef(wc(function(e,t){let{__scopeTooltip:n,...r}=e,i=Ic(Rc,n),a=Mc(Rc,n),o=Dc(n),s=be(t,_.useRef(null),i.onTriggerChange),c=_.useRef(!1),l=_.useRef(!1),u=_.useCallback(()=>c.current=!1,[]);return _.useEffect(()=>()=>document.removeEventListener(`pointerup`,u),[u]),(0,L.jsx)(is,{asChild:!0,...o,children:(0,L.jsx)(R.button,{"aria-describedby":i.open?i.contentId:void 0,"data-state":i.stateAttribute,...r,ref:s,onPointerMove:ut(e.onPointerMove,e=>{e.pointerType!==`touch`&&!l.current&&!a.isPointerInTransitRef.current&&(i.onTriggerEnter(),l.current=!0)}),onPointerLeave:ut(e.onPointerLeave,()=>{i.onTriggerLeave(),l.current=!1}),onPointerDown:ut(e.onPointerDown,()=>{i.open&&i.onClose(),c.current=!0,document.addEventListener(`pointerup`,u,{once:!0})}),onFocus:ut(e.onFocus,()=>{c.current||i.onOpen()}),onBlur:ut(e.onBlur,i.onClose),onClick:ut(e.onClick,i.onClose)})})},`TooltipTrigger`)),Bc=`TooltipPortal`,[Vc,Hc]=Tc(Bc,{forceMount:void 0}),Uc=wc(e=>{let{__scopeTooltip:t,forceMount:n,children:r,container:i}=e,a=Ic(Bc,t);return(0,L.jsx)(Vc,{scope:t,forceMount:n,children:(0,L.jsx)(Mt,{present:n||a.open,children:(0,L.jsx)(On,{asChild:!0,container:i,children:r})})})},`TooltipPortal`),Wc=`TooltipContent`,Gc=_.forwardRef(wc(function(e,t){let n=Hc(Wc,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i=`top`,...a}=e,o=Ic(Wc,e.__scopeTooltip);return(0,L.jsx)(Mt,{present:r||o.open,children:o.disableHoverableContent?(0,L.jsx)(Jc,{side:i,...a,ref:t}):(0,L.jsx)(Kc,{side:i,...a,ref:t})})},`TooltipContent`)),Kc=_.forwardRef(wc(function(e,t){let n=Ic(Wc,e.__scopeTooltip),r=Mc(Wc,e.__scopeTooltip),i=_.useRef(null),a=be(t,i),[o,s]=_.useState(null),{trigger:c,onClose:l}=n,u=i.current,{onPointerInTransitChange:d}=r,f=_.useCallback(()=>{s(null),d(!1)},[d]),p=_.useCallback((e,t)=>{let n=e.currentTarget,r={x:e.clientX,y:e.clientY},i=Xc(r,Yc(r,n.getBoundingClientRect())),a=Zc(t.getBoundingClientRect()),o=$c([...i,...a]);s(o),d(!0)},[d]);return _.useEffect(()=>()=>f(),[f]),_.useEffect(()=>{if(c&&u){let e=wc(e=>p(e,u),`handleTriggerLeave`),t=wc(e=>p(e,c),`handleContentLeave`);return c.addEventListener(`pointerleave`,e),u.addEventListener(`pointerleave`,t),()=>{c.removeEventListener(`pointerleave`,e),u.removeEventListener(`pointerleave`,t)}}},[c,u,p,f]),_.useEffect(()=>{if(o){let e=wc(e=>{let t=e.target,n={x:e.clientX,y:e.clientY},r=c?.contains(t)||u?.contains(t),i=!Qc(n,o);r?f():i&&(f(),l())},`handleTrackPointerGrace`);return document.addEventListener(`pointermove`,e),()=>document.removeEventListener(`pointermove`,e)}},[c,u,o,l,f]),(0,L.jsx)(Jc,{...e,ref:a})},`TooltipContentHoverable`)),qc=we(`TooltipContent`),Jc=_.forwardRef(wc(function(e,t){let{__scopeTooltip:n,children:r,"aria-label":i,id:a,onEscapeKeyDown:o,onPointerDownOutside:s,...c}=e,l=Ic(Wc,n),u=Dc(n),{onClose:d}=l;_.useEffect(()=>(document.addEventListener(Ac,d),()=>document.removeEventListener(Ac,d)),[d]),_.useEffect(()=>{if(l.trigger){let e=wc(e=>{e.target instanceof Node&&e.target.contains(l.trigger)&&d()},`handleScroll`);return window.addEventListener(`scroll`,e,{capture:!0}),()=>window.removeEventListener(`scroll`,e,{capture:!0})}},[l.trigger,d]);let{setContentId:f}=l;return ht(()=>(f(a),()=>{f(void 0)}),[a,f]),(0,L.jsx)(nn,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:o,onPointerDownOutside:s,onFocusOutside:e=>e.preventDefault(),onDismiss:d,children:(0,L.jsxs)(as,{"data-state":l.stateAttribute,role:i?void 0:`tooltip`,id:i?void 0:l.contentId,...u,...c,ref:t,style:{...c.style,"--radix-tooltip-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-tooltip-content-available-width":`var(--radix-popper-available-width)`,"--radix-tooltip-content-available-height":`var(--radix-popper-available-height)`,"--radix-tooltip-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-tooltip-trigger-height":`var(--radix-popper-anchor-height)`},children:[(0,L.jsx)(qc,{children:r}),i?(0,L.jsx)(He,{id:l.contentId,role:`tooltip`,children:i}):null]})})},`TooltipContentImpl`));function Yc(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,i,a)){case a:return`left`;case i:return`right`;case n:return`top`;case r:return`bottom`;default:throw Error(`unreachable`)}}wc(Yc,`getExitSideFromRect`);function Xc(e,t,n=5){let r=[];switch(t){case`top`:r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case`bottom`:r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case`left`:r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case`right`:r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n})}return r}wc(Xc,`getPaddedExitPoints`);function Zc(e){let{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}wc(Zc,`getPointsFromRect`);function Qc(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e],s=t[a],c=o.x,l=o.y,u=s.x,d=s.y;l>r!=d>r&&n<(u-c)*(r-l)/(d-l)+c&&(i=!i)}return i}wc(Qc,`isPointInPolygon`);function $c(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:+(e.y>t.y)),el(t)}wc($c,`getHull`);function el(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n<e.length;n++){let r=e[n];for(;t.length>=2;){let e=t[t.length-1],n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n[n.length-1],t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}wc(el,`getHullPresorted`);var tl=Nc,nl=Lc,rl=zc,il=Uc,al=Gc,ol=tl;function sl({content:e,children:t,side:n=`top`}){return(0,L.jsxs)(nl,{children:[(0,L.jsx)(rl,{asChild:!0,children:t}),(0,L.jsx)(il,{children:(0,L.jsx)(al,{side:n,sideOffset:6,className:`z-[60] rounded-md border border-border bg-panel-alt px-2 py-1 text-xs text-text shadow-lg animate-in`,children:e})})]})}function cl(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`){if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=cl(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n)}return r}function ll(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=cl(e))&&(r&&(r+=` `),r+=t);return r}var ul=(e,t)=>{let n=Array(e.length+t.length);for(let t=0;t<e.length;t++)n[t]=e[t];for(let r=0;r<t.length;r++)n[e.length+r]=t[r];return n},dl=(e,t)=>({classGroupId:e,validator:t}),fl=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),pl=`-`,ml=[],hl=`arbitrary..`,gl=e=>{let t=yl(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:e=>{if(e.startsWith(`[`)&&e.endsWith(`]`))return vl(e);let n=e.split(pl);return _l(n,+(n[0]===``&&n.length>1),t)},getConflictingClassGroupIds:(e,t)=>{if(t){let t=r[e],i=n[e];return t?i?ul(i,t):t:i||ml}return n[e]||ml}}},_l=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;let r=e[t],i=n.nextPart.get(r);if(i){let n=_l(e,t+1,i);if(n)return n}let a=n.validators;if(a===null)return;let o=t===0?e.join(pl):e.slice(t).join(pl),s=a.length;for(let e=0;e<s;e++){let t=a[e];if(t.validator(o))return t.classGroupId}},vl=e=>e.slice(1,-1).indexOf(`:`)===-1?void 0:(()=>{let t=e.slice(1,-1),n=t.indexOf(`:`),r=t.slice(0,n);return r?hl+r:void 0})(),yl=e=>{let{theme:t,classGroups:n}=e;return bl(n,t)},bl=(e,t)=>{let n=fl();for(let r in e){let i=e[r];xl(i,n,r,t)}return n},xl=(e,t,n,r)=>{let i=e.length;for(let a=0;a<i;a++){let i=e[a];Sl(i,t,n,r)}},Sl=(e,t,n,r)=>{typeof e==`string`?Cl(e,t,n):typeof e==`function`?wl(e,t,n,r):Tl(e,t,n,r)},Cl=(e,t,n)=>{let r=e===``?t:El(t,e);r.classGroupId=n},wl=(e,t,n,r)=>{Dl(e)?xl(e(r),t,n,r):(t.validators===null&&(t.validators=[]),t.validators.push(dl(n,e)))},Tl=(e,t,n,r)=>{let i=Object.entries(e),a=i.length;for(let e=0;e<a;e++){let[a,o]=i[e];xl(o,El(t,a),n,r)}},El=(e,t)=>{let n=e,r=t.split(pl),i=r.length;for(let e=0;e<i;e++){let t=r[e],i=n.nextPart.get(t);i||(i=fl(),n.nextPart.set(t,i)),n=i}return n},Dl=e=>`isThemeGetter`in e&&e.isThemeGetter===!0,Ol=e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null),i=(i,a)=>{n[i]=a,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(e){let t=n[e];if(t!==void 0)return t;if((t=r[e])!==void 0)return i(e,t),t},set(e,t){e in n?n[e]=t:i(e,t)}}},kl=`!`,Al=`:`,jl=[],Ml=(e,t,n,r,i)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:i}),Nl=e=>{let{prefix:t,experimentalParseClassName:n}=e,r=e=>{let t=[],n=0,r=0,i=0,a,o=e.length;for(let s=0;s<o;s++){let o=e[s];if(n===0&&r===0){if(o===Al){t.push(e.slice(i,s)),i=s+1;continue}if(o===`/`){a=s;continue}}o===`[`?n++:o===`]`?n--:o===`(`?r++:o===`)`&&r--}let s=t.length===0?e:e.slice(i),c=s,l=!1;s.endsWith(kl)?(c=s.slice(0,-1),l=!0):s.startsWith(kl)&&(c=s.slice(1),l=!0);let u=a&&a>i?a-i:void 0;return Ml(t,l,c,u)};if(t){let e=t+Al,n=r;r=t=>t.startsWith(e)?n(t.slice(e.length)):Ml(jl,!1,t,void 0,!0)}if(n){let e=r;r=t=>n({className:t,parseClassName:e})}return r},Pl=e=>{let t=new Map;return e.orderSensitiveModifiers.forEach((e,n)=>{t.set(e,1e6+n)}),e=>{let n=[],r=[];for(let i=0;i<e.length;i++){let a=e[i],o=a[0]===`[`,s=t.has(a);o||s?(r.length>0&&(r.sort(),n.push(...r),r=[]),n.push(a)):r.push(a)}return r.length>0&&(r.sort(),n.push(...r)),n}},Fl=e=>({cache:Ol(e.cacheSize),parseClassName:Nl(e),sortModifiers:Pl(e),postfixLookupClassGroupIds:Il(e),...gl(e)}),Il=e=>{let t=Object.create(null),n=e.postfixLookupClassGroups;if(n)for(let e=0;e<n.length;e++)t[n[e]]=!0;return t},Ll=/\\s+/,Rl=(e,t)=>{let{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:i,sortModifiers:a,postfixLookupClassGroupIds:o}=t,s=[],c=e.trim().split(Ll),l=``;for(let e=c.length-1;e>=0;--e){let t=c[e],{isExternal:u,modifiers:d,hasImportantModifier:f,baseClassName:p,maybePostfixModifierPosition:m}=n(t);if(u){l=t+(l.length>0?` `+l:l);continue}let h=!!m,g;if(h){g=r(p.substring(0,m));let e=g&&o[g]?r(p):void 0;e&&e!==g&&(g=e,h=!1)}else g=r(p);if(!g){if(!h||(g=r(p),!g)){l=t+(l.length>0?` `+l:l);continue}h=!1}let _=d.length===0?``:d.length===1?d[0]:a(d).join(`:`),v=f?_+kl:_,y=v+g;if(s.indexOf(y)>-1)continue;s.push(y);let b=i(g,h);for(let e=0;e<b.length;++e){let t=b[e];s.push(v+t)}l=t+(l.length>0?` `+l:l)}return l},zl=(...e)=>{let t=0,n,r,i=``;for(;t<e.length;)(n=e[t++])&&(r=Bl(n))&&(i&&(i+=` `),i+=r);return i},Bl=e=>{if(typeof e==`string`)return e;let t,n=``;for(let r=0;r<e.length;r++)e[r]&&(t=Bl(e[r]))&&(n&&(n+=` `),n+=t);return n},Vl=(e,...t)=>{let n,r,i,a,o=o=>(n=Fl(t.reduce((e,t)=>t(e),e())),r=n.cache.get,i=n.cache.set,a=s,s(o)),s=e=>{let t=r(e);if(t)return t;let a=Rl(e,n);return i(e,a),a};return a=o,(...e)=>a(zl(...e))},Hl=[],Ul=e=>{let t=t=>t[e]||Hl;return t.isThemeGetter=!0,t.themeKey=e,t},Wl=/^\\[(?:(\\w[\\w-]*):)?(.+)\\]$/i,Gl=/^\\((?:(\\w[\\w-]*):)?(.+)\\)$/i,Kl=/^\\d+(?:\\.\\d+)?\\/\\d+(?:\\.\\d+)?$/,ql=/^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/,Jl=/\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/,Yl=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix|color|light-dark)\\(.+\\)$/,Xl=/^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/,Zl=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/,Ql=e=>Kl.test(e),H=e=>!!e&&!Number.isNaN(Number(e)),$l=e=>!!e&&Number.isInteger(Number(e)),eu=e=>e.endsWith(`%`)&&H(e.slice(0,-1)),tu=e=>ql.test(e),nu=()=>!0,ru=e=>Jl.test(e)&&!Yl.test(e),iu=()=>!1,au=e=>Xl.test(e),ou=e=>Zl.test(e),su=e=>!U(e)&&!W(e),cu=e=>e.startsWith(`@container`)&&(e[10]===`/`&&e[11]!==void 0||e[11]===`s`&&e[16]!==void 0&&e.startsWith(`-size/`,10)||e[11]===`n`&&e[18]!==void 0&&e.startsWith(`-normal/`,10)),lu=e=>wu(e,Ou,iu),U=e=>Wl.test(e),uu=e=>wu(e,ku,ru),du=e=>wu(e,Au,H),fu=e=>wu(e,Mu,nu),pu=e=>wu(e,ju,iu),mu=e=>wu(e,Eu,iu),hu=e=>wu(e,Du,ou),gu=e=>wu(e,Nu,au),W=e=>Gl.test(e),_u=e=>Tu(e,ku),vu=e=>Tu(e,ju),yu=e=>Tu(e,Eu),bu=e=>Tu(e,Ou),xu=e=>Tu(e,Du),Su=e=>Tu(e,Nu,!0),Cu=e=>Tu(e,Mu,!0),wu=(e,t,n)=>{let r=Wl.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},Tu=(e,t,n=!1)=>{let r=Gl.exec(e);return r?r[1]?t(r[1]):n:!1},Eu=e=>e===`position`||e===`percentage`,Du=e=>e===`image`||e===`url`,Ou=e=>e===`length`||e===`size`||e===`bg-size`,ku=e=>e===`length`,Au=e=>e===`number`,ju=e=>e===`family-name`,Mu=e=>e===`number`||e===`weight`,Nu=e=>e===`shadow`,Pu=Vl(()=>{let e=Ul(`color`),t=Ul(`font`),n=Ul(`text`),r=Ul(`font-weight`),i=Ul(`tracking`),a=Ul(`leading`),o=Ul(`breakpoint`),s=Ul(`container`),c=Ul(`spacing`),l=Ul(`radius`),u=Ul(`shadow`),d=Ul(`inset-shadow`),f=Ul(`text-shadow`),p=Ul(`drop-shadow`),m=Ul(`blur`),h=Ul(`perspective`),g=Ul(`aspect`),_=Ul(`ease`),v=Ul(`animate`),y=()=>[`auto`,`avoid`,`all`,`avoid-page`,`page`,`left`,`right`,`column`],b=()=>[`center`,`top`,`bottom`,`left`,`right`,`top-left`,`left-top`,`top-right`,`right-top`,`bottom-right`,`right-bottom`,`bottom-left`,`left-bottom`],x=()=>[...b(),W,U],S=()=>[`auto`,`hidden`,`clip`,`visible`,`scroll`],C=()=>[`auto`,`contain`,`none`],w=()=>[W,U,c],T=()=>[Ql,`full`,`auto`,...w()],E=()=>[$l,`none`,`subgrid`,W,U],D=()=>[`auto`,{span:[`full`,$l,W,U]},$l,W,U],ee=()=>[$l,`auto`,W,U],O=()=>[`auto`,`min`,`max`,`fr`,W,U],te=()=>[`start`,`end`,`center`,`between`,`around`,`evenly`,`stretch`,`baseline`,`center-safe`,`end-safe`],k=()=>[`start`,`end`,`center`,`stretch`,`center-safe`,`end-safe`],A=()=>[`auto`,...w()],ne=()=>[Ql,`auto`,`full`,`dvw`,`dvh`,`lvw`,`lvh`,`svw`,`svh`,`min`,`max`,`fit`,...w()],re=()=>[s,Ql,`screen`,`full`,`dvw`,`lvw`,`svw`,`min`,`max`,`fit`,...w()],j=()=>[Ql,`screen`,`full`,`lh`,`dvh`,`lvh`,`svh`,`min`,`max`,`fit`,...w()],M=()=>[e,W,U],ie=()=>[...b(),yu,mu,{position:[W,U]}],ae=()=>[`no-repeat`,{repeat:[``,`x`,`y`,`space`,`round`]}],oe=()=>[`auto`,`cover`,`contain`,bu,lu,{size:[W,U]}],se=()=>[eu,_u,uu],ce=()=>[``,`none`,`full`,l,W,U],le=()=>[``,H,_u,uu],ue=()=>[`solid`,`dashed`,`dotted`,`double`],de=()=>[`normal`,`multiply`,`screen`,`overlay`,`darken`,`lighten`,`color-dodge`,`color-burn`,`hard-light`,`soft-light`,`difference`,`exclusion`,`hue`,`saturation`,`color`,`luminosity`],fe=()=>[H,eu,yu,mu],pe=()=>[``,`none`,m,W,U],me=()=>[`none`,H,W,U],he=()=>[`none`,H,W,U],ge=()=>[H,W,U],_e=()=>[Ql,`full`,...w()];return{cacheSize:500,theme:{animate:[`spin`,`ping`,`pulse`,`bounce`],aspect:[`video`],blur:[tu],breakpoint:[tu],color:[nu],container:[tu],"drop-shadow":[tu],ease:[`in`,`out`,`in-out`],font:[su],"font-weight":[`thin`,`extralight`,`light`,`normal`,`medium`,`semibold`,`bold`,`extrabold`,`black`],"inset-shadow":[tu],leading:[`none`,`tight`,`snug`,`normal`,`relaxed`,`loose`],perspective:[`dramatic`,`near`,`normal`,`midrange`,`distant`,`none`],radius:[tu],shadow:[tu],spacing:[`px`,H],text:[tu],"text-shadow":[tu],tracking:[`tighter`,`tight`,`normal`,`wide`,`wider`,`widest`]},classGroups:{aspect:[{aspect:[`auto`,`square`,Ql,U,W,g]}],container:[`container`],"container-type":[{"@container":[``,`normal`,`size`,W,U]}],"container-named":[cu],columns:[{columns:[H,`auto`,U,W,s]}],"break-after":[{"break-after":y()}],"break-before":[{"break-before":y()}],"break-inside":[{"break-inside":[`auto`,`avoid`,`avoid-page`,`avoid-column`]}],"box-decoration":[{"box-decoration":[`slice`,`clone`]}],box:[{box:[`border`,`content`]}],display:[`block`,`inline-block`,`inline`,`flex`,`inline-flex`,`table`,`inline-table`,`table-caption`,`table-cell`,`table-column`,`table-column-group`,`table-footer-group`,`table-header-group`,`table-row-group`,`table-row`,`flow-root`,`grid`,`inline-grid`,`contents`,`list-item`,`hidden`],sr:[`sr-only`,`not-sr-only`],float:[{float:[`right`,`left`,`none`,`start`,`end`]}],clear:[{clear:[`left`,`right`,`both`,`none`,`start`,`end`]}],isolation:[`isolate`,`isolation-auto`],"object-fit":[{object:[`contain`,`cover`,`fill`,`none`,`scale-down`]}],"object-position":[{object:x()}],overflow:[{overflow:S()}],"overflow-x":[{"overflow-x":S()}],"overflow-y":[{"overflow-y":S()}],overscroll:[{overscroll:C()}],"overscroll-x":[{"overscroll-x":C()}],"overscroll-y":[{"overscroll-y":C()}],position:[`static`,`fixed`,`absolute`,`relative`,`sticky`],inset:[{inset:T()}],"inset-x":[{"inset-x":T()}],"inset-y":[{"inset-y":T()}],start:[{"inset-s":T(),start:T()}],end:[{"inset-e":T(),end:T()}],"inset-bs":[{"inset-bs":T()}],"inset-be":[{"inset-be":T()}],top:[{top:T()}],right:[{right:T()}],bottom:[{bottom:T()}],left:[{left:T()}],visibility:[`visible`,`invisible`,`collapse`],z:[{z:[$l,`auto`,W,U]}],basis:[{basis:[Ql,`full`,`auto`,s,...w()]}],"flex-direction":[{flex:[`row`,`row-reverse`,`col`,`col-reverse`]}],"flex-wrap":[{flex:[`nowrap`,`wrap`,`wrap-reverse`]}],flex:[{flex:[H,Ql,`auto`,`initial`,`none`,U]}],grow:[{grow:[``,H,W,U]}],shrink:[{shrink:[``,H,W,U]}],order:[{order:[$l,`first`,`last`,`none`,W,U]}],"grid-cols":[{"grid-cols":E()}],"col-start-end":[{col:D()}],"col-start":[{"col-start":ee()}],"col-end":[{"col-end":ee()}],"grid-rows":[{"grid-rows":E()}],"row-start-end":[{row:D()}],"row-start":[{"row-start":ee()}],"row-end":[{"row-end":ee()}],"grid-flow":[{"grid-flow":[`row`,`col`,`dense`,`row-dense`,`col-dense`]}],"auto-cols":[{"auto-cols":O()}],"auto-rows":[{"auto-rows":O()}],gap:[{gap:w()}],"gap-x":[{"gap-x":w()}],"gap-y":[{"gap-y":w()}],"justify-content":[{justify:[...te(),`normal`]}],"justify-items":[{"justify-items":[...k(),`normal`]}],"justify-self":[{"justify-self":[`auto`,...k()]}],"align-content":[{content:[`normal`,...te()]}],"align-items":[{items:[...k(),{baseline:[``,`last`]}]}],"align-self":[{self:[`auto`,...k(),{baseline:[``,`last`]}]}],"place-content":[{"place-content":te()}],"place-items":[{"place-items":[...k(),`baseline`]}],"place-self":[{"place-self":[`auto`,...k()]}],p:[{p:w()}],px:[{px:w()}],py:[{py:w()}],ps:[{ps:w()}],pe:[{pe:w()}],pbs:[{pbs:w()}],pbe:[{pbe:w()}],pt:[{pt:w()}],pr:[{pr:w()}],pb:[{pb:w()}],pl:[{pl:w()}],m:[{m:A()}],mx:[{mx:A()}],my:[{my:A()}],ms:[{ms:A()}],me:[{me:A()}],mbs:[{mbs:A()}],mbe:[{mbe:A()}],mt:[{mt:A()}],mr:[{mr:A()}],mb:[{mb:A()}],ml:[{ml:A()}],"space-x":[{"space-x":w()}],"space-x-reverse":[`space-x-reverse`],"space-y":[{"space-y":w()}],"space-y-reverse":[`space-y-reverse`],size:[{size:ne()}],"inline-size":[{inline:[`auto`,...re()]}],"min-inline-size":[{"min-inline":[`auto`,...re()]}],"max-inline-size":[{"max-inline":[`none`,...re()]}],"block-size":[{block:[`auto`,...j()]}],"min-block-size":[{"min-block":[`auto`,...j()]}],"max-block-size":[{"max-block":[`none`,...j()]}],w:[{w:[s,`screen`,...ne()]}],"min-w":[{"min-w":[s,`screen`,`none`,...ne()]}],"max-w":[{"max-w":[s,`screen`,`none`,`prose`,{screen:[o]},...ne()]}],h:[{h:[`screen`,`lh`,...ne()]}],"min-h":[{"min-h":[`screen`,`lh`,`none`,...ne()]}],"max-h":[{"max-h":[`screen`,`lh`,`none`,...ne()]}],"font-size":[{text:[`base`,n,_u,uu]}],"font-smoothing":[`antialiased`,`subpixel-antialiased`],"font-style":[`italic`,`not-italic`],"font-weight":[{font:[r,Cu,fu]}],"font-stretch":[{"font-stretch":[`ultra-condensed`,`extra-condensed`,`condensed`,`semi-condensed`,`normal`,`semi-expanded`,`expanded`,`extra-expanded`,`ultra-expanded`,eu,U]}],"font-family":[{font:[vu,pu,t]}],"font-features":[{"font-features":[U]}],"fvn-normal":[`normal-nums`],"fvn-ordinal":[`ordinal`],"fvn-slashed-zero":[`slashed-zero`],"fvn-figure":[`lining-nums`,`oldstyle-nums`],"fvn-spacing":[`proportional-nums`,`tabular-nums`],"fvn-fraction":[`diagonal-fractions`,`stacked-fractions`],tracking:[{tracking:[i,W,U]}],"line-clamp":[{"line-clamp":[H,`none`,W,du]}],leading:[{leading:[`none`,a,...w()]}],"list-image":[{"list-image":[`none`,W,U]}],"list-style-position":[{list:[`inside`,`outside`]}],"list-style-type":[{list:[`disc`,`decimal`,`none`,W,U]}],"text-alignment":[{text:[`left`,`center`,`right`,`justify`,`start`,`end`]}],"placeholder-color":[{placeholder:M()}],"text-color":[{text:M()}],"text-decoration":[`underline`,`overline`,`line-through`,`no-underline`],"text-decoration-style":[{decoration:[...ue(),`wavy`]}],"text-decoration-thickness":[{decoration:[H,`from-font`,`auto`,W,uu]}],"text-decoration-color":[{decoration:M()}],"underline-offset":[{"underline-offset":[H,`auto`,W,U]}],"text-transform":[`uppercase`,`lowercase`,`capitalize`,`normal-case`],"text-overflow":[`truncate`,`text-ellipsis`,`text-clip`],"text-wrap":[{text:[`wrap`,`nowrap`,`balance`,`pretty`]}],indent:[{indent:w()}],"tab-size":[{tab:[$l,W,U]}],"vertical-align":[{align:[`baseline`,`top`,`middle`,`bottom`,`text-top`,`text-bottom`,`sub`,`super`,W,U]}],whitespace:[{whitespace:[`normal`,`nowrap`,`pre`,`pre-line`,`pre-wrap`,`break-spaces`]}],break:[{break:[`normal`,`words`,`all`,`keep`]}],wrap:[{wrap:[`break-word`,`anywhere`,`normal`]}],hyphens:[{hyphens:[`none`,`manual`,`auto`]}],content:[{content:[`none`,W,U]}],"bg-attachment":[{bg:[`fixed`,`local`,`scroll`]}],"bg-clip":[{"bg-clip":[`border`,`padding`,`content`,`text`]}],"bg-origin":[{"bg-origin":[`border`,`padding`,`content`]}],"bg-position":[{bg:ie()}],"bg-repeat":[{bg:ae()}],"bg-size":[{bg:oe()}],"bg-image":[{bg:[`none`,{linear:[{to:[`t`,`tr`,`r`,`br`,`b`,`bl`,`l`,`tl`]},$l,W,U],radial:[``,W,U],conic:[``,$l,W,U]},xu,hu]}],"bg-color":[{bg:M()}],"gradient-from-pos":[{from:se()}],"gradient-via-pos":[{via:se()}],"gradient-to-pos":[{to:se()}],"gradient-from":[{from:M()}],"gradient-via":[{via:M()}],"gradient-to":[{to:M()}],rounded:[{rounded:ce()}],"rounded-s":[{"rounded-s":ce()}],"rounded-e":[{"rounded-e":ce()}],"rounded-t":[{"rounded-t":ce()}],"rounded-r":[{"rounded-r":ce()}],"rounded-b":[{"rounded-b":ce()}],"rounded-l":[{"rounded-l":ce()}],"rounded-ss":[{"rounded-ss":ce()}],"rounded-se":[{"rounded-se":ce()}],"rounded-ee":[{"rounded-ee":ce()}],"rounded-es":[{"rounded-es":ce()}],"rounded-tl":[{"rounded-tl":ce()}],"rounded-tr":[{"rounded-tr":ce()}],"rounded-br":[{"rounded-br":ce()}],"rounded-bl":[{"rounded-bl":ce()}],"border-w":[{border:le()}],"border-w-x":[{"border-x":le()}],"border-w-y":[{"border-y":le()}],"border-w-s":[{"border-s":le()}],"border-w-e":[{"border-e":le()}],"border-w-bs":[{"border-bs":le()}],"border-w-be":[{"border-be":le()}],"border-w-t":[{"border-t":le()}],"border-w-r":[{"border-r":le()}],"border-w-b":[{"border-b":le()}],"border-w-l":[{"border-l":le()}],"divide-x":[{"divide-x":le()}],"divide-x-reverse":[`divide-x-reverse`],"divide-y":[{"divide-y":le()}],"divide-y-reverse":[`divide-y-reverse`],"border-style":[{border:[...ue(),`hidden`,`none`]}],"divide-style":[{divide:[...ue(),`hidden`,`none`]}],"border-color":[{border:M()}],"border-color-x":[{"border-x":M()}],"border-color-y":[{"border-y":M()}],"border-color-s":[{"border-s":M()}],"border-color-e":[{"border-e":M()}],"border-color-bs":[{"border-bs":M()}],"border-color-be":[{"border-be":M()}],"border-color-t":[{"border-t":M()}],"border-color-r":[{"border-r":M()}],"border-color-b":[{"border-b":M()}],"border-color-l":[{"border-l":M()}],"divide-color":[{divide:M()}],"outline-style":[{outline:[...ue(),`none`,`hidden`]}],"outline-offset":[{"outline-offset":[H,W,U]}],"outline-w":[{outline:[``,H,_u,uu]}],"outline-color":[{outline:M()}],shadow:[{shadow:[``,`inner`,`none`,u,Su,gu]}],"shadow-color":[{shadow:M()}],"inset-shadow":[{"inset-shadow":[`none`,d,Su,gu]}],"inset-shadow-color":[{"inset-shadow":M()}],"ring-w":[{ring:le()}],"ring-w-inset":[`ring-inset`],"ring-color":[{ring:M()}],"ring-offset-w":[{"ring-offset":[H,uu]}],"ring-offset-color":[{"ring-offset":M()}],"inset-ring-w":[{"inset-ring":le()}],"inset-ring-color":[{"inset-ring":M()}],"text-shadow":[{"text-shadow":[`none`,f,Su,gu]}],"text-shadow-color":[{"text-shadow":M()}],opacity:[{opacity:[H,W,U]}],"mix-blend":[{"mix-blend":[...de(),`plus-darker`,`plus-lighter`]}],"bg-blend":[{"bg-blend":de()}],"mask-clip":[{"mask-clip":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]},`mask-no-clip`],"mask-composite":[{mask:[`add`,`subtract`,`intersect`,`exclude`]}],"mask-image-linear-pos":[{"mask-linear":[H]}],"mask-image-linear-from-pos":[{"mask-linear-from":fe()}],"mask-image-linear-to-pos":[{"mask-linear-to":fe()}],"mask-image-linear-from-color":[{"mask-linear-from":M()}],"mask-image-linear-to-color":[{"mask-linear-to":M()}],"mask-image-t-from-pos":[{"mask-t-from":fe()}],"mask-image-t-to-pos":[{"mask-t-to":fe()}],"mask-image-t-from-color":[{"mask-t-from":M()}],"mask-image-t-to-color":[{"mask-t-to":M()}],"mask-image-r-from-pos":[{"mask-r-from":fe()}],"mask-image-r-to-pos":[{"mask-r-to":fe()}],"mask-image-r-from-color":[{"mask-r-from":M()}],"mask-image-r-to-color":[{"mask-r-to":M()}],"mask-image-b-from-pos":[{"mask-b-from":fe()}],"mask-image-b-to-pos":[{"mask-b-to":fe()}],"mask-image-b-from-color":[{"mask-b-from":M()}],"mask-image-b-to-color":[{"mask-b-to":M()}],"mask-image-l-from-pos":[{"mask-l-from":fe()}],"mask-image-l-to-pos":[{"mask-l-to":fe()}],"mask-image-l-from-color":[{"mask-l-from":M()}],"mask-image-l-to-color":[{"mask-l-to":M()}],"mask-image-x-from-pos":[{"mask-x-from":fe()}],"mask-image-x-to-pos":[{"mask-x-to":fe()}],"mask-image-x-from-color":[{"mask-x-from":M()}],"mask-image-x-to-color":[{"mask-x-to":M()}],"mask-image-y-from-pos":[{"mask-y-from":fe()}],"mask-image-y-to-pos":[{"mask-y-to":fe()}],"mask-image-y-from-color":[{"mask-y-from":M()}],"mask-image-y-to-color":[{"mask-y-to":M()}],"mask-image-radial":[{"mask-radial":[W,U]}],"mask-image-radial-from-pos":[{"mask-radial-from":fe()}],"mask-image-radial-to-pos":[{"mask-radial-to":fe()}],"mask-image-radial-from-color":[{"mask-radial-from":M()}],"mask-image-radial-to-color":[{"mask-radial-to":M()}],"mask-image-radial-shape":[{"mask-radial":[`circle`,`ellipse`]}],"mask-image-radial-size":[{"mask-radial":[{closest:[`side`,`corner`],farthest:[`side`,`corner`]}]}],"mask-image-radial-pos":[{"mask-radial-at":b()}],"mask-image-conic-pos":[{"mask-conic":[H]}],"mask-image-conic-from-pos":[{"mask-conic-from":fe()}],"mask-image-conic-to-pos":[{"mask-conic-to":fe()}],"mask-image-conic-from-color":[{"mask-conic-from":M()}],"mask-image-conic-to-color":[{"mask-conic-to":M()}],"mask-mode":[{mask:[`alpha`,`luminance`,`match`]}],"mask-origin":[{"mask-origin":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]}],"mask-position":[{mask:ie()}],"mask-repeat":[{mask:ae()}],"mask-size":[{mask:oe()}],"mask-type":[{"mask-type":[`alpha`,`luminance`]}],"mask-image":[{mask:[`none`,W,U]}],filter:[{filter:[``,`none`,W,U]}],blur:[{blur:pe()}],brightness:[{brightness:[H,W,U]}],contrast:[{contrast:[H,W,U]}],"drop-shadow":[{"drop-shadow":[``,`none`,p,Su,gu]}],"drop-shadow-color":[{"drop-shadow":M()}],grayscale:[{grayscale:[``,H,W,U]}],"hue-rotate":[{"hue-rotate":[H,W,U]}],invert:[{invert:[``,H,W,U]}],saturate:[{saturate:[H,W,U]}],sepia:[{sepia:[``,H,W,U]}],"backdrop-filter":[{"backdrop-filter":[``,`none`,W,U]}],"backdrop-blur":[{"backdrop-blur":pe()}],"backdrop-brightness":[{"backdrop-brightness":[H,W,U]}],"backdrop-contrast":[{"backdrop-contrast":[H,W,U]}],"backdrop-grayscale":[{"backdrop-grayscale":[``,H,W,U]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[H,W,U]}],"backdrop-invert":[{"backdrop-invert":[``,H,W,U]}],"backdrop-opacity":[{"backdrop-opacity":[H,W,U]}],"backdrop-saturate":[{"backdrop-saturate":[H,W,U]}],"backdrop-sepia":[{"backdrop-sepia":[``,H,W,U]}],"border-collapse":[{border:[`collapse`,`separate`]}],"border-spacing":[{"border-spacing":w()}],"border-spacing-x":[{"border-spacing-x":w()}],"border-spacing-y":[{"border-spacing-y":w()}],"table-layout":[{table:[`auto`,`fixed`]}],caption:[{caption:[`top`,`bottom`]}],transition:[{transition:[``,`all`,`colors`,`opacity`,`shadow`,`transform`,`none`,W,U]}],"transition-behavior":[{transition:[`normal`,`discrete`]}],duration:[{duration:[H,`initial`,W,U]}],ease:[{ease:[`linear`,`initial`,_,W,U]}],delay:[{delay:[H,W,U]}],animate:[{animate:[`none`,v,W,U]}],backface:[{backface:[`hidden`,`visible`]}],perspective:[{perspective:[h,W,U]}],"perspective-origin":[{"perspective-origin":x()}],rotate:[{rotate:me()}],"rotate-x":[{"rotate-x":me()}],"rotate-y":[{"rotate-y":me()}],"rotate-z":[{"rotate-z":me()}],scale:[{scale:he()}],"scale-x":[{"scale-x":he()}],"scale-y":[{"scale-y":he()}],"scale-z":[{"scale-z":he()}],"scale-3d":[`scale-3d`],skew:[{skew:ge()}],"skew-x":[{"skew-x":ge()}],"skew-y":[{"skew-y":ge()}],transform:[{transform:[W,U,``,`none`,`gpu`,`cpu`]}],"transform-origin":[{origin:x()}],"transform-style":[{transform:[`3d`,`flat`]}],translate:[{translate:_e()}],"translate-x":[{"translate-x":_e()}],"translate-y":[{"translate-y":_e()}],"translate-z":[{"translate-z":_e()}],"translate-none":[`translate-none`],zoom:[{zoom:[$l,W,U]}],accent:[{accent:M()}],appearance:[{appearance:[`none`,`auto`]}],"caret-color":[{caret:M()}],"color-scheme":[{scheme:[`normal`,`dark`,`light`,`light-dark`,`only-dark`,`only-light`]}],cursor:[{cursor:[`auto`,`default`,`pointer`,`wait`,`text`,`move`,`help`,`not-allowed`,`none`,`context-menu`,`progress`,`cell`,`crosshair`,`vertical-text`,`alias`,`copy`,`no-drop`,`grab`,`grabbing`,`all-scroll`,`col-resize`,`row-resize`,`n-resize`,`e-resize`,`s-resize`,`w-resize`,`ne-resize`,`nw-resize`,`se-resize`,`sw-resize`,`ew-resize`,`ns-resize`,`nesw-resize`,`nwse-resize`,`zoom-in`,`zoom-out`,W,U]}],"field-sizing":[{"field-sizing":[`fixed`,`content`]}],"pointer-events":[{"pointer-events":[`auto`,`none`]}],resize:[{resize:[`none`,``,`y`,`x`]}],"scroll-behavior":[{scroll:[`auto`,`smooth`]}],"scrollbar-thumb-color":[{"scrollbar-thumb":M()}],"scrollbar-track-color":[{"scrollbar-track":M()}],"scrollbar-gutter":[{"scrollbar-gutter":[`auto`,`stable`,`both`]}],"scrollbar-w":[{scrollbar:[`auto`,`thin`,`none`]}],"scroll-m":[{"scroll-m":w()}],"scroll-mx":[{"scroll-mx":w()}],"scroll-my":[{"scroll-my":w()}],"scroll-ms":[{"scroll-ms":w()}],"scroll-me":[{"scroll-me":w()}],"scroll-mbs":[{"scroll-mbs":w()}],"scroll-mbe":[{"scroll-mbe":w()}],"scroll-mt":[{"scroll-mt":w()}],"scroll-mr":[{"scroll-mr":w()}],"scroll-mb":[{"scroll-mb":w()}],"scroll-ml":[{"scroll-ml":w()}],"scroll-p":[{"scroll-p":w()}],"scroll-px":[{"scroll-px":w()}],"scroll-py":[{"scroll-py":w()}],"scroll-ps":[{"scroll-ps":w()}],"scroll-pe":[{"scroll-pe":w()}],"scroll-pbs":[{"scroll-pbs":w()}],"scroll-pbe":[{"scroll-pbe":w()}],"scroll-pt":[{"scroll-pt":w()}],"scroll-pr":[{"scroll-pr":w()}],"scroll-pb":[{"scroll-pb":w()}],"scroll-pl":[{"scroll-pl":w()}],"snap-align":[{snap:[`start`,`end`,`center`,`align-none`]}],"snap-stop":[{snap:[`normal`,`always`]}],"snap-type":[{snap:[`none`,`x`,`y`,`both`]}],"snap-strictness":[{snap:[`mandatory`,`proximity`]}],touch:[{touch:[`auto`,`none`,`manipulation`]}],"touch-x":[{"touch-pan":[`x`,`left`,`right`]}],"touch-y":[{"touch-pan":[`y`,`up`,`down`]}],"touch-pz":[`touch-pinch-zoom`],select:[{select:[`none`,`text`,`all`,`auto`]}],"will-change":[{"will-change":[`auto`,`scroll`,`contents`,`transform`,W,U]}],fill:[{fill:[`none`,...M()]}],"stroke-w":[{stroke:[H,_u,uu,du]}],stroke:[{stroke:[`none`,...M()]}],"forced-color-adjust":[{"forced-color-adjust":[`auto`,`none`]}]},conflictingClassGroups:{"container-named":[`container-type`],overflow:[`overflow-x`,`overflow-y`],overscroll:[`overscroll-x`,`overscroll-y`],inset:[`inset-x`,`inset-y`,`inset-bs`,`inset-be`,`start`,`end`,`top`,`right`,`bottom`,`left`],"inset-x":[`start`,`end`,`right`,`left`],"inset-y":[`inset-bs`,`inset-be`,`top`,`bottom`],flex:[`basis`,`grow`,`shrink`],gap:[`gap-x`,`gap-y`],p:[`px`,`py`,`ps`,`pe`,`pbs`,`pbe`,`pt`,`pr`,`pb`,`pl`],px:[`ps`,`pe`,`pr`,`pl`],py:[`pbs`,`pbe`,`pt`,`pb`],m:[`mx`,`my`,`ms`,`me`,`mbs`,`mbe`,`mt`,`mr`,`mb`,`ml`],mx:[`ms`,`me`,`mr`,`ml`],my:[`mbs`,`mbe`,`mt`,`mb`],size:[`w`,`h`],"font-size":[`leading`],"fvn-normal":[`fvn-ordinal`,`fvn-slashed-zero`,`fvn-figure`,`fvn-spacing`,`fvn-fraction`],"fvn-ordinal":[`fvn-normal`],"fvn-slashed-zero":[`fvn-normal`],"fvn-figure":[`fvn-normal`],"fvn-spacing":[`fvn-normal`],"fvn-fraction":[`fvn-normal`],"line-clamp":[`display`,`overflow`],rounded:[`rounded-s`,`rounded-e`,`rounded-t`,`rounded-r`,`rounded-b`,`rounded-l`,`rounded-ss`,`rounded-se`,`rounded-ee`,`rounded-es`,`rounded-tl`,`rounded-tr`,`rounded-br`,`rounded-bl`],"rounded-s":[`rounded-ss`,`rounded-es`],"rounded-e":[`rounded-se`,`rounded-ee`],"rounded-t":[`rounded-tl`,`rounded-tr`],"rounded-r":[`rounded-tr`,`rounded-br`],"rounded-b":[`rounded-br`,`rounded-bl`],"rounded-l":[`rounded-tl`,`rounded-bl`],"border-spacing":[`border-spacing-x`,`border-spacing-y`],"border-w":[`border-w-x`,`border-w-y`,`border-w-s`,`border-w-e`,`border-w-bs`,`border-w-be`,`border-w-t`,`border-w-r`,`border-w-b`,`border-w-l`],"border-w-x":[`border-w-s`,`border-w-e`,`border-w-r`,`border-w-l`],"border-w-y":[`border-w-bs`,`border-w-be`,`border-w-t`,`border-w-b`],"border-color":[`border-color-x`,`border-color-y`,`border-color-s`,`border-color-e`,`border-color-bs`,`border-color-be`,`border-color-t`,`border-color-r`,`border-color-b`,`border-color-l`],"border-color-x":[`border-color-s`,`border-color-e`,`border-color-r`,`border-color-l`],"border-color-y":[`border-color-bs`,`border-color-be`,`border-color-t`,`border-color-b`],translate:[`translate-x`,`translate-y`,`translate-none`],"translate-none":[`translate`,`translate-x`,`translate-y`,`translate-z`],"scroll-m":[`scroll-mx`,`scroll-my`,`scroll-ms`,`scroll-me`,`scroll-mbs`,`scroll-mbe`,`scroll-mt`,`scroll-mr`,`scroll-mb`,`scroll-ml`],"scroll-mx":[`scroll-ms`,`scroll-me`,`scroll-mr`,`scroll-ml`],"scroll-my":[`scroll-mbs`,`scroll-mbe`,`scroll-mt`,`scroll-mb`],"scroll-p":[`scroll-px`,`scroll-py`,`scroll-ps`,`scroll-pe`,`scroll-pbs`,`scroll-pbe`,`scroll-pt`,`scroll-pr`,`scroll-pb`,`scroll-pl`],"scroll-px":[`scroll-ps`,`scroll-pe`,`scroll-pr`,`scroll-pl`],"scroll-py":[`scroll-pbs`,`scroll-pbe`,`scroll-pt`,`scroll-pb`],touch:[`touch-x`,`touch-y`,`touch-pz`],"touch-x":[`touch`],"touch-y":[`touch`],"touch-pz":[`touch`]},conflictingClassGroupModifiers:{"font-size":[`leading`]},postfixLookupClassGroups:[`container-type`],orderSensitiveModifiers:[`*`,`**`,`after`,`backdrop`,`before`,`details-content`,`file`,`first-letter`,`first-line`,`marker`,`placeholder`,`selection`]}});function G(...e){return Pu(ll(e))}var Fu=`\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022`,Iu={password:{glyph:`\u25CF`,label:`Login`,color:`text-accent`},note:{glyph:`\u25A0`,label:`Secure note`,color:`text-info`},otp:{glyph:`\u25C6`,label:`OTP`,color:`text-success`}};function Lu(e=24,t=!0){let n=`ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz23456789`+(t?`!@#$%^&*-_=+`:``),r=256-256%n.length,i=``;for(;i.length<e;)for(let t of crypto.getRandomValues(new Uint8Array(e*2)))t<r&&i.length<e&&(i+=n[t%n.length]);return i}function Ru(e,t){let n=e.toLowerCase(),r=t.toLowerCase();if(!n)return 0;let i=r.indexOf(n);if(i!==-1)return 1e3-i;let a=0,o=0,s=0;for(let e of n){let t=r.indexOf(e,o);if(t===-1)return null;s=t===o?s+1:0;let n=t===0||/[\\s\\-_./@]/.test(r[t-1]??``);a+=1+s*2+(n?3:0),o=t+1}return a}function zu(e,t,n){if(!t.trim())return e;let r=[];for(let i of e){let e=null;n(i).forEach((n,r)=>{if(!n)return;let i=Ru(t,n);i!==null&&(e=e===null?i-r*5:Math.max(e,i-r*5))}),e!==null&&r.push({item:i,score:e})}return r.sort((e,t)=>t.score-e.score).map(e=>e.item)}function Bu(e){return e.replace(/^[a-z]+:\\/\\//i,``).replace(/\\/$/,``)}function Vu(e){return typeof e==`string`&&/^https?:\\/\\//i.test(e)}function Hu(e){return e.length===6?`${e.slice(0,3)} ${e.slice(3)}`:e}function Uu(e){let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString(void 0,{dateStyle:`medium`,timeStyle:`short`})}function Wu(e,t=Date.now()){let n=Date.parse(e)-t,r=Math.abs(n),i=[[864e5,`day`],[36e5,`hour`],[6e4,`minute`],[1e3,`second`]],a=new Intl.RelativeTimeFormat(void 0,{numeric:`auto`});for(let[e,t]of i)if(r>=e||t===`second`)return a.format(Math.round(n/e),t);return e}function Gu(e){return e%86400==0&&e>=86400?`${e/86400}d`:e%3600==0&&e>=3600?`${e/3600}h`:e%60==0&&e>=60?`${e/60}m`:`${e}s`}function Ku(e){let t=/^\\s*(\\d+)\\s*([smhd]?)\\s*$/i.exec(e);if(!t)return null;let n={"":1,s:1,m:60,h:3600,d:86400}[t[2].toLowerCase()];return Number(t[1])*n}function qu(){return/mac|iphone|ipad/i.test(navigator.platform||navigator.userAgent)}function Ju(e){return e instanceof HTMLElement?e.isContentEditable||[`INPUT`,`TEXTAREA`,`SELECT`].includes(e.tagName):!1}function Yu({title:e,actions:t,className:n,bodyClassName:r,children:i,focused:a,...o}){return(0,L.jsxs)(`section`,{className:G(`flex min-h-0 flex-col rounded-xl border bg-panel`,a?`border-border-focus`:`border-border`,n),...o,children:[e||t?(0,L.jsxs)(`header`,{className:`flex min-h-11 items-center justify-between gap-3 border-b border-border px-4 py-2`,children:[(0,L.jsx)(`h2`,{className:`truncate text-xs font-semibold uppercase tracking-wider text-muted`,children:e}),t?(0,L.jsx)(`div`,{className:`flex items-center gap-1.5`,children:t}):null]}):null,(0,L.jsx)(`div`,{className:G(`min-h-0 flex-1`,r),children:i})]})}function Xu({children:e,className:t}){return(0,L.jsx)(`kbd`,{className:G(`kbd`,t),children:e})}function Zu({icon:e,title:t,children:n}){return(0,L.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-2 px-6 py-12 text-center`,children:[e?(0,L.jsx)(`div`,{className:`text-dim [&_svg]:size-8`,children:e}):null,(0,L.jsx)(`p`,{className:`text-sm font-medium text-muted`,children:t}),n?(0,L.jsx)(`div`,{className:`max-w-sm text-xs text-dim`,children:n}):null]})}function Qu({className:e}){return(0,L.jsx)(`span`,{className:G(`inline-block size-4 animate-spin rounded-full border-2 border-dim border-t-accent`,e),"aria-label":`Loading`})}var $u=class extends Error{status;constructor(e,t){super(t),this.status=e}},K=`autho.csrf`;function ed(){try{return window.sessionStorage}catch{return null}}function q(e){let t=ed();t&&(e?t.setItem(K,e):t.removeItem(K))}function J(){return!!ed()?.getItem(K)}var td=()=>{};function nd(e){td=e}async function Y(e,t,n){let r={"x-autho-request":`1`},i=ed()?.getItem(K);i&&(r[`x-autho-csrf`]=i),n!==void 0&&(r[`content-type`]=`application/json`);let a;try{a=await fetch(t,{body:n===void 0?void 0:JSON.stringify(n),cache:`no-store`,credentials:`same-origin`,headers:r,method:e})}catch{throw new $u(0,"Can\'t reach autho \u2014 is `autho web serve` still running?")}let o=await a.json().catch(()=>({}));if(!a.ok)throw a.status===401&&t!==`/api/session/unlock`&&t!==`/api/admin/authorize`&&(q(null),td()),new $u(a.status,o.error??`Request failed (${a.status})`);return o.data}var X={auth:()=>Y(`GET`,`/api/auth`),unlock:e=>Y(`POST`,`/api/session/unlock`,e),lock:()=>Y(`POST`,`/api/session/lock`),session:()=>Y(`GET`,`/api/session`),secrets:()=>Y(`GET`,`/api/secrets`),secret:e=>Y(`GET`,`/api/secrets/${encodeURIComponent(e)}`),createSecret:e=>Y(`POST`,`/api/secrets`,e),updateSecret:(e,t)=>Y(`PATCH`,`/api/secrets/${encodeURIComponent(e)}`,t),deleteSecret:(e,t)=>Y(`DELETE`,`/api/secrets/${encodeURIComponent(e)}${t?`?withLinked=1`:``}`),reveal:e=>Y(`POST`,`/api/secrets/${encodeURIComponent(e)}/reveal`),otp:(e,t=!1)=>Y(`GET`,`/api/secrets/${encodeURIComponent(e)}/otp${t?`?copy=1`:``}`),link:(e,t)=>Y(`POST`,`/api/links`,{primary:e,secret:t}),unlink:(e,t)=>Y(`DELETE`,`/api/links`,{primary:e,secret:t}),leases:()=>Y(`GET`,`/api/leases`),createLease:e=>Y(`POST`,`/api/leases`,e),revokeLease:e=>Y(`POST`,`/api/leases/${encodeURIComponent(e)}/revoke`),audit:(e=200)=>Y(`GET`,`/api/audit?limit=${e}`),verify:()=>Y(`GET`,`/api/vault/verify`),importLegacy:(e,t)=>Y(`POST`,`/api/import`,{entries:e,skipExisting:t}),settings:()=>Y(`GET`,`/api/settings`),setPreference:(e,t)=>Y(`PUT`,`/api/settings/preferences/${encodeURIComponent(e)}`,{value:t}),setVaultDir:e=>Y(`PUT`,`/api/settings/vault-dir`,{path:e}),authorize:e=>Y(`POST`,`/api/admin/authorize`,e),release:()=>Y(`POST`,`/api/admin/release`),changePassword:e=>Y(`POST`,`/api/admin/password`,{newPassword:e}),totpSetup:()=>Y(`POST`,`/api/admin/totp/setup`),totpEnable:e=>Y(`POST`,`/api/admin/totp`,{code:e}),totpDisable:()=>Y(`DELETE`,`/api/admin/totp`),passkeyOptions:()=>Y(`POST`,`/api/admin/passkeys/options`),addPasskey:e=>Y(`POST`,`/api/admin/passkeys`,e),removePasskey:e=>Y(`DELETE`,`/api/admin/passkeys/${encodeURIComponent(e)}`),createRecovery:()=>Y(`POST`,`/api/admin/recovery`),revokeRecovery:()=>Y(`DELETE`,`/api/admin/recovery`),saveKeychain:()=>Y(`POST`,`/api/admin/keychain`),forgetKeychain:()=>Y(`DELETE`,`/api/admin/keychain`),setPin:e=>Y(`POST`,`/api/admin/pin`,{pin:e}),removePin:()=>Y(`DELETE`,`/api/admin/pin`),reseal:e=>Y(`POST`,`/api/admin/reseal`,{mode:e})},Z=e=>e instanceof Error?e.message:String(e),rd=(0,_.createContext)(null);function id(){let e=(0,_.useContext)(rd);if(!e)throw Error(`useApp outside AppProvider`);return e}function ad(e,t){let{setScreenCommands:n,setHints:r}=id();(0,_.useEffect)(()=>{n(e)},[e,n]);let i=JSON.stringify(t);(0,_.useEffect)(()=>{r(JSON.parse(i))},[i,r]),(0,_.useEffect)(()=>()=>n([]),[n])}var od=6e4,sd=[`pointerdown`,`keydown`,`wheel`,`touchstart`,`pointermove`];function cd({session:e,onLocked:t,children:n}){let[r,i]=(0,_.useState)(e.prefs),[a,o]=(0,_.useState)(()=>location.hash.slice(1)||`vault`),[s,c]=(0,_.useState)([]),[l,u]=(0,_.useState)([]),[d,f]=(0,_.useState)(!1),[p,m]=(0,_.useState)(!1),h=(0,_.useRef)(null),g=(0,_.useRef)(Date.now()),v=(0,_.useRef)(Date.now()),y=(0,_.useRef)(!1),b=(0,_.useCallback)(e=>{o(e),history.replaceState(null,``,`#${e}`)},[]),x=(0,_.useCallback)(e=>{y.current||(y.current=!0,X.lock().catch(()=>{}).finally(()=>{q(null),t(e)}))},[t]),S=(0,_.useCallback)(async(e,t,n=!1)=>{try{await navigator.clipboard.writeText(t)}catch{j.error(`The browser blocked clipboard access`);return}h.current!==null&&window.clearTimeout(h.current),n&&r.clipboardClearSeconds>0?(h.current=window.setTimeout(()=>{navigator.clipboard.writeText(``).catch(()=>{}),h.current=null},r.clipboardClearSeconds*1e3),j.success(`${e} copied`,{description:`Clipboard clears in ${r.clipboardClearSeconds}s`})):j.success(`${e} copied`)},[r.clipboardClearSeconds]);(0,_.useEffect)(()=>{let e=()=>{g.current=Date.now()};for(let t of sd)window.addEventListener(t,e,{passive:!0});let t=window.setInterval(()=>{let e=Date.now(),t=r.idleLockSeconds*1e3;t>0&&e-g.current>=t?x(`Locked after inactivity`):g.current>v.current&&e-v.current>=od&&(v.current=e,X.session().catch(e=>{Z(e)!==`Locked`&&j.error(Z(e))}))},5e3);return()=>{for(let t of sd)window.removeEventListener(t,e);window.clearInterval(t)}},[r.idleLockSeconds,x]),(0,_.useEffect)(()=>{let t=window.setTimeout(()=>x(`Session expired \u2014 unlock again`),Math.max(0,e.hardAt-Date.now()));return()=>window.clearTimeout(t)},[e.hardAt,x]),(0,_.useEffect)(()=>()=>{h.current!==null&&window.clearTimeout(h.current)},[]);let C=(0,_.useMemo)(()=>({session:e,prefs:r,setPrefs:i,screen:a,go:b,lock:x,copy:S,setScreenCommands:c,screenCommands:s,setHints:u,hints:l,paletteOpen:d,setPaletteOpen:f,modalOpen:p,setModalOpen:m}),[e,r,a,b,x,S,s,l,d,p]);return(0,L.jsx)(rd.Provider,{value:C,children:n})}var ld=e=>e?.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase();function ud(e,t,n=[]){if(t==null)throw Error(`[lucide]: iconNode is required when icon name is used`);return{name:ld(e),size:24,node:t,...n.length>0?{aliases:n}:{}}}var dd=e=>{let t=``,n=!1;for(let r of e)r===`-`||r===`_`||r<=` `?n=t.length>0:(t.length===0?t+=r.toLowerCase():t+=n?r.toUpperCase():r,n=!1);return t},fd=e=>{let t=dd(e);return t.charAt(0).toUpperCase()+t.slice(1)},pd=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),md={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":2,"stroke-linecap":`round`,"stroke-linejoin":`round`};function hd(e){return e!=null}function gd(e,t={}){let n=t.attributeNames??{},r=e=>n[e]??e,i=e.size??e.width??md.width,a=e.size??e.height??md.height,o=e.aliases?.filter(e=>typeof e==`string`&&e.trim()!==``).map(e=>`lucide-${e}`)??[],s=[...e.name?[`lucide-${e.name}`]:[],...o],c=t.className?.split(` `).filter(Boolean)??[],l=t.includeDefaultClasses===!1?pd(...c):pd(`lucide`,...s,...c),u=t.absoluteStrokeWidth?Number(t.strokeWidth??md[`stroke-width`])*Number(e.size??e.width??md.width)/Number(t.size??t.width??md.width):t.strokeWidth??md[`stroke-width`];return[`svg`,{...Object.entries(md).reduce((e,[t,n])=>(e[r(t)]=n,e),{}),...`color`in t&&t.color&&{[r(`stroke`)]:t.color},...`size`in t&&hd(t.size)&&{[r(`width`)]:t.size,[r(`height`)]:t.size},...`width`in t&&hd(t.width)&&{[r(`width`)]:t.width},...`height`in t&&hd(t.height)&&{[r(`height`)]:t.height},[r(`stroke-width`)]:u,...l&&{[r(`class`)]:l},[r(`viewBox`)]:`0 0 ${i} ${a}`,...t.hasA11yProp===!1?{[r(`aria-hidden`)]:`true`}:{},...`attributes`in t&&t.attributes},e.node.map(e=>{let[n,i,a]=e,o=t.nonScalingStroke?{[r(`vector-effect`)]:`non-scaling-stroke`,...i}:i;return a?[n,o,a]:[n,o]})]}function _d(e,t={}){return gd(e,{...t,attributeNames:{...t.attributeNames,class:`className`,"stroke-width":`strokeWidth`,"stroke-linecap":`strokeLinecap`,"stroke-linejoin":`strokeLinejoin`,"vector-effect":`vectorEffect`}})}var vd=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},yd=(0,_.createContext)({}),bd=()=>(0,_.useContext)(yd),xd=(0,_.forwardRef)(({color:e,size:t,width:n,height:r,strokeWidth:i,absoluteStrokeWidth:a,nonScalingStroke:o,className:s=``,children:c,iconNode:l=[],icon:u={node:l,aliases:[],size:24},...d},f)=>{let{size:p=24,strokeWidth:m=2,absoluteStrokeWidth:h=!1,nonScalingStroke:g=!1,color:v=`currentColor`,className:y=``}=bd()??{},b=!!c||vd(d),[x,S,C=[]]=_d(u,{color:e??v,width:n??t??p,height:r??t??p,strokeWidth:i??m,absoluteStrokeWidth:a??h,nonScalingStroke:o??g,className:pd(y,s),hasA11yProp:b,attributes:d});return(0,_.createElement)(x,{ref:f,...S},[...C.map(([e,t])=>(0,_.createElement)(e,t)),...Array.isArray(c)?c:[c]])});function Sd(e,t=[],n=[]){let r=typeof e==`string`?ud(e,t,n):e,i=(0,_.forwardRef)(({className:e,...t},n)=>(0,_.createElement)(xd,{ref:n,icon:r,className:e,...t}));return r.name&&(i.displayName=fd(r.name)),i}var Cd={name:`check`,size:24,node:[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]};Cd.node;var wd=Sd(Cd),Td={name:`command`,size:24,node:[[`path`,{d:`M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3`,key:`11bfej`}]]};Td.node;var Ed=Sd(Td),Dd={name:`copy`,size:24,node:[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`,key:`17jyea`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`,key:`zix9uf`}]]};Dd.node;var Od=Sd(Dd),kd={name:`download`,size:24,node:[[`path`,{d:`M12 15V3`,key:`m9g1x1`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}],[`path`,{d:`m7 10 5 5 5-5`,key:`brsn70`}]]};kd.node;var Ad=Sd(kd),jd={name:`external-link`,size:24,node:[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`M10 14 21 3`,key:`gplh6r`}],[`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`,key:`a6xqqp`}]]};jd.node;var Md=Sd(jd),Nd={name:`eye-off`,size:24,node:[[`path`,{d:`M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49`,key:`ct8e1f`}],[`path`,{d:`M14.084 14.158a3 3 0 0 1-4.242-4.242`,key:`151rxh`}],[`path`,{d:`M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143`,key:`13bj9a`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]};Nd.node;var Pd=Sd(Nd),Fd={name:`eye`,size:24,node:[[`path`,{d:`M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0`,key:`1nclc0`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]};Fd.node;var Id=Sd(Fd),Ld={name:`file-key`,size:24,node:[[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M4 12v6`,key:`bg1pfk`}],[`path`,{d:`M4 14h2`,key:`1sf9f8`}],[`path`,{d:`M9.65 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v4`,key:`d56i0q`}],[`circle`,{cx:`4`,cy:`20`,r:`2`,key:`6kqj1y`}]],aliases:[`file-key-2`]};Ld.node;var Rd=Sd(Ld),zd={name:`file-up`,size:24,node:[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M12 12v6`,key:`3ahymv`}],[`path`,{d:`m15 15-3-3-3 3`,key:`15xj92`}]]};zd.node;var Bd=Sd(zd),Vd={name:`fingerprint-pattern`,size:24,node:[[`path`,{d:`M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4`,key:`1nerag`}],[`path`,{d:`M14 13.12c0 2.38 0 6.38-1 8.88`,key:`o46ks0`}],[`path`,{d:`M17.29 21.02c.12-.6.43-2.3.5-3.02`,key:`ptglia`}],[`path`,{d:`M2 12a10 10 0 0 1 18-6`,key:`ydlgp0`}],[`path`,{d:`M2 16h.01`,key:`1gqxmh`}],[`path`,{d:`M21.8 16c.2-2 .131-5.354 0-6`,key:`drycrb`}],[`path`,{d:`M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2`,key:`1tidbn`}],[`path`,{d:`M8.65 22c.21-.66.45-1.32.57-2`,key:`13wd9y`}],[`path`,{d:`M9 6.8a6 6 0 0 1 9 5.2v2`,key:`1fr1j5`}]],aliases:[`fingerprint`]};Vd.node;var Hd=Sd(Vd),Ud={name:`key-round`,size:24,node:[[`path`,{d:`M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z`,key:`1s6t7t`}],[`circle`,{cx:`16.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`w0ekpg`}]]};Ud.node;var Wd=Sd(Ud),Gd={name:`link-2`,size:24,node:[[`path`,{d:`M9 17H7A5 5 0 0 1 7 7h2`,key:`8i5ue5`}],[`path`,{d:`M15 7h2a5 5 0 1 1 0 10h-2`,key:`1b9ql8`}],[`line`,{x1:`8`,x2:`16`,y1:`12`,y2:`12`,key:`1jonct`}]]};Gd.node;var Kd=Sd(Gd),qd={name:`lock`,size:24,node:[[`rect`,{width:`18`,height:`11`,x:`3`,y:`11`,rx:`2`,ry:`2`,key:`1w4ew1`}],[`path`,{d:`M7 11V7a5 5 0 0 1 10 0v4`,key:`fwvmzm`}]]};qd.node;var Jd=Sd(qd),Yd={name:`pencil`,size:24,node:[[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}],[`path`,{d:`m15 5 4 4`,key:`1mk7zo`}]]};Yd.node;var Xd=Sd(Yd),Zd={name:`plus`,size:24,node:[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]};Zd.node;var Qd=Sd(Zd),$d={name:`refresh-cw`,size:24,node:[[`path`,{d:`M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8`,key:`v9h5vc`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}],[`path`,{d:`M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16`,key:`3uifl3`}],[`path`,{d:`M8 16H3v5`,key:`1cv678`}]]};$d.node;var ef=Sd($d),tf={name:`scroll-text`,size:24,node:[[`path`,{d:`M15 12h-5`,key:`r7krc0`}],[`path`,{d:`M15 8h-5`,key:`1khuty`}],[`path`,{d:`M19 17V5a2 2 0 0 0-2-2H4`,key:`zz82l3`}],[`path`,{d:`M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3`,key:`1ph1d7`}]]};tf.node;var nf=Sd(tf),rf={name:`search`,size:24,node:[[`path`,{d:`m21 21-4.34-4.34`,key:`14j7rj`}],[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}]]};rf.node;var af=Sd(rf),of={name:`shield-alert`,size:24,node:[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`M12 8v4`,key:`1got3b`}],[`path`,{d:`M12 16h.01`,key:`1drbdi`}]]};of.node;var sf=Sd(of),cf={name:`shield-check`,size:24,node:[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]};cf.node;var lf=Sd(cf),uf={name:`shield-question-mark`,size:24,node:[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3`,key:`mhlwft`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]],aliases:[`shield-question`]};uf.node;var df=Sd(uf),ff={name:`trash`,size:24,node:[[`path`,{d:`M10 11v6`,key:`nco0om`}],[`path`,{d:`M14 11v6`,key:`outv1u`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]],aliases:[`trash-2`]};ff.node;var pf=Sd(ff),mf={name:`triangle-alert`,size:24,node:[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]],aliases:[`alert-triangle`]};mf.node;var hf=Sd(mf),gf={name:`unlink`,size:24,node:[[`path`,{d:`m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71`,key:`yqzxt4`}],[`path`,{d:`m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71`,key:`4qinb0`}],[`line`,{x1:`8`,x2:`8`,y1:`2`,y2:`5`,key:`1041cp`}],[`line`,{x1:`2`,x2:`5`,y1:`8`,y2:`8`,key:`14m1p5`}],[`line`,{x1:`16`,x2:`16`,y1:`19`,y2:`22`,key:`rzdirn`}],[`line`,{x1:`19`,x2:`22`,y1:`16`,y2:`16`,key:`ox905f`}]]};gf.node;var _f=Sd(gf),vf={name:`wand-sparkles`,size:24,node:[[`path`,{d:`m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72`,key:`ul74o6`}],[`path`,{d:`m14 7 3 3`,key:`1r5n42`}],[`path`,{d:`M5 6v4`,key:`ilb8ba`}],[`path`,{d:`M19 14v4`,key:`blhpug`}],[`path`,{d:`M10 2v2`,key:`7u0qdc`}],[`path`,{d:`M7 8H3`,key:`zfb6yr`}],[`path`,{d:`M21 16h-4`,key:`1cnmox`}],[`path`,{d:`M11 3H9`,key:`1obp7u`}]],aliases:[`wand-2`]};vf.node;var yf=Sd(vf),bf={name:`x`,size:24,node:[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]};bf.node;var xf=Sd(bf),Sf=e=>typeof e==`boolean`?`${e}`:e===0?`0`:e,Cf=ll,wf=((e,t)=>n=>{if(t?.variants==null)return Cf(e,n?.class,n?.className);let{variants:r,defaultVariants:i}=t,a=Object.keys(r).map(e=>{let t=n?.[e],a=i?.[e];if(t===null)return null;let o=Sf(t)||Sf(a);return r[e][o]}),o=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return r===void 0||(e[n]=r),e},{});return Cf(e,a,t?.compoundVariants?.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...i,...o}[t]):{...i,...o}[t]===n})?[...e,n,r]:e},[]),n?.class,n?.className)})(`inline-flex shrink-0 cursor-pointer items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors disabled:pointer-events-none disabled:opacity-40 [&_svg]:size-4 [&_svg]:shrink-0`,{variants:{variant:{primary:`bg-accent text-on-accent hover:bg-accent/90`,secondary:`border border-border bg-panel-alt text-text hover:border-border-focus hover:bg-selection`,ghost:`text-muted hover:bg-selection hover:text-text`,danger:`border border-danger/50 bg-danger-bg text-danger hover:bg-danger/20`,link:`h-auto p-0 text-accent underline-offset-4 hover:underline`},size:{sm:`h-7 px-2.5 text-xs`,md:`h-9 px-3.5`,lg:`h-10 px-5`,icon:`size-8`,"icon-sm":`size-7`}},defaultVariants:{variant:`secondary`,size:`md`}});function Q({className:e,variant:t,size:n,asChild:r=!1,type:i=`button`,...a}){let o=r?Se:`button`;return(0,L.jsx)(o,{type:r?void 0:i,className:G(wf({variant:t,size:n}),e),...a})}var Tf=1,Ef=.9,Df=.8,Of=.17,kf=.1,Af=.999,jf=.9999,Mf=.99,Nf=/[\\\\\\/_+.#"@\\[\\(\\{&]/,Pf=/[\\\\\\/_+.#"@\\[\\(\\{&]/g,Ff=/[\\s-]/,If=/[\\s-]/g;function Lf(e,t,n,r,i,a,o){if(a===t.length)return i===e.length?Tf:Mf;var s=`${i},${a}`;if(o[s]!==void 0)return o[s];for(var c=r.charAt(a),l=n.indexOf(c,i),u=0,d,f,p,m;l>=0;)d=Lf(e,t,n,r,l+1,a+1,o),d>u&&(l===i?d*=Tf:Nf.test(e.charAt(l-1))?(d*=Df,p=e.slice(i,l-1).match(Pf),p&&i>0&&(d*=Af**+p.length)):Ff.test(e.charAt(l-1))?(d*=Ef,m=e.slice(i,l-1).match(If),m&&i>0&&(d*=Af**+m.length)):(d*=Of,i>0&&(d*=Af**+(l-i))),e.charAt(l)!==t.charAt(a)&&(d*=jf)),(d<kf&&n.charAt(l-1)===r.charAt(a+1)||r.charAt(a+1)===r.charAt(a)&&n.charAt(l-1)!==r.charAt(a))&&(f=Lf(e,t,n,r,l+1,a+2,o),f*kf>d&&(d=f*kf)),d>u&&(u=d),l=n.indexOf(c,l+1);return o[s]=u,u}function Rf(e){return e.toLowerCase().replace(If,` `)}function zf(e,t,n){return e=n&&n.length>0?`${e+` `+n.join(` `)}`:e,Lf(e,t,Rf(e),Rf(t),0,0,{})}var Bf=`[cmdk-group=""]`,$=`[cmdk-group-items=""]`,Vf=`[cmdk-group-heading=""]`,Hf=`[cmdk-item=""]`,Uf=`${Hf}:not([aria-disabled="true"])`,Wf=`cmdk-item-select`,Gf=`data-value`,Kf=(e,t,n)=>zf(e,t,n),qf=_.createContext(void 0),Jf=()=>_.useContext(qf),Yf=_.createContext(void 0),Xf=()=>_.useContext(Yf),Zf=_.createContext(void 0),Qf=_.forwardRef((e,t)=>{let n=fp(()=>({search:``,value:e.value??e.defaultValue??``,selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}})),r=fp(()=>new Set),i=fp(()=>new Map),a=fp(()=>new Map),o=fp(()=>new Set),s=up(e),{label:c,children:l,value:u,onValueChange:d,filter:f,shouldFilter:p,loop:m,disablePointerSelection:h=!1,vimBindings:g=!0,...v}=e,y=Ht(),b=Ht(),x=Ht(),S=_.useRef(null),C=hp();dp(()=>{if(u!==void 0){let e=u.trim();n.current.value=e,w.emit()}},[u]),dp(()=>{C(6,te)},[]);let w=_.useMemo(()=>({subscribe:e=>(o.current.add(e),()=>o.current.delete(e)),snapshot:()=>n.current,setState:(e,t,r)=>{var i,a,o;if(!Object.is(n.current[e],t)){if(n.current[e]=t,e===`search`)O(),D(),C(1,ee);else if(e===`value`){if(document.activeElement.hasAttribute(`cmdk-input`)||document.activeElement.hasAttribute(`cmdk-root`)){let e=document.getElementById(x);e?e.focus():(i=document.getElementById(y))==null||i.focus()}if(C(7,()=>{n.current.selectedItemId=k()?.id,w.emit()}),r||C(5,te),s.current?.value!==void 0){let e=t??``;(o=(a=s.current).onValueChange)==null||o.call(a,e);return}}w.emit()}},emit:()=>{o.current.forEach(e=>e())}}),[]),T=_.useMemo(()=>({value:(e,t,r)=>{t!==a.current.get(e)?.value&&(a.current.set(e,{value:t,keywords:r}),n.current.filtered.items.set(e,E(t,r)),C(2,()=>{D(),w.emit()}))},item:(e,t)=>(r.current.add(e),t&&(i.current.has(t)?i.current.get(t).add(e):i.current.set(t,new Set([e]))),C(3,()=>{O(),D(),n.current.value||ee(),w.emit()}),()=>{a.current.delete(e),r.current.delete(e),n.current.filtered.items.delete(e);let t=k();C(4,()=>{O(),t?.getAttribute(`id`)===e&&ee(),w.emit()})}),group:e=>(i.current.has(e)||i.current.set(e,new Set),()=>{a.current.delete(e),i.current.delete(e)}),filter:()=>s.current.shouldFilter,label:c||e[`aria-label`],getDisablePointerSelection:()=>s.current.disablePointerSelection,listId:y,inputId:x,labelId:b,listInnerRef:S}),[]);function E(e,t){let r=s.current?.filter??Kf;return e?r(e,n.current.search,t):0}function D(){if(!n.current.search||s.current.shouldFilter===!1)return;let e=n.current.filtered.items,t=[];n.current.filtered.groups.forEach(n=>{let r=i.current.get(n),a=0;r.forEach(t=>{let n=e.get(t);a=Math.max(n,a)}),t.push([n,a])});let r=S.current;A().sort((t,n)=>{let r=t.getAttribute(`id`),i=n.getAttribute(`id`);return(e.get(i)??0)-(e.get(r)??0)}).forEach(e=>{let t=e.closest($);t?t.appendChild(e.parentElement===t?e:e.closest(`${$} > *`)):r.appendChild(e.parentElement===r?e:e.closest(`${$} > *`))}),t.sort((e,t)=>t[1]-e[1]).forEach(e=>{let t=S.current?.querySelector(`${Bf}[${Gf}="${encodeURIComponent(e[0])}"]`);t?.parentElement.appendChild(t)})}function ee(){let e=A().find(e=>e.getAttribute(`aria-disabled`)!==`true`)?.getAttribute(Gf);w.setState(`value`,e||void 0)}function O(){if(!n.current.search||s.current.shouldFilter===!1){n.current.filtered.count=r.current.size;return}n.current.filtered.groups=new Set;let e=0;for(let t of r.current){let r=E(a.current.get(t)?.value??``,a.current.get(t)?.keywords??[]);n.current.filtered.items.set(t,r),r>0&&e++}for(let[e,t]of i.current)for(let r of t)if(n.current.filtered.items.get(r)>0){n.current.filtered.groups.add(e);break}n.current.filtered.count=e}function te(){var e;let t=k();t&&(t.parentElement?.firstChild===t&&((e=t.closest(Bf)?.querySelector(Vf))==null||e.scrollIntoView({block:`nearest`})),t.scrollIntoView({block:`nearest`}))}function k(){return S.current?.querySelector(`${Hf}[aria-selected="true"]`)}function A(){return Array.from(S.current?.querySelectorAll(Uf)||[])}function ne(e){let t=A()[e];t&&w.setState(`value`,t.getAttribute(Gf))}function re(e){var t;let n=k(),r=A(),i=r.findIndex(e=>e===n),a=r[i+e];(t=s.current)!=null&&t.loop&&(a=i+e<0?r[r.length-1]:i+e===r.length?r[0]:r[i+e]),a&&w.setState(`value`,a.getAttribute(Gf))}function j(e){let t=k()?.closest(Bf),n;for(;t&&!n;)t=e>0?cp(t,Bf):lp(t,Bf),n=t?.querySelector(Uf);n?w.setState(`value`,n.getAttribute(Gf)):re(e)}let M=()=>ne(A().length-1),ie=e=>{e.preventDefault(),e.metaKey?M():e.altKey?j(1):re(1)},ae=e=>{e.preventDefault(),e.metaKey?ne(0):e.altKey?j(-1):re(-1)};return _.createElement(R.div,{ref:t,tabIndex:-1,...v,"cmdk-root":``,onKeyDown:e=>{var t;(t=v.onKeyDown)==null||t.call(v,e);let n=e.nativeEvent.isComposing||e.keyCode===229;if(!(e.defaultPrevented||n))switch(e.key){case`n`:case`j`:g&&e.ctrlKey&&ie(e);break;case`ArrowDown`:ie(e);break;case`p`:case`k`:g&&e.ctrlKey&&ae(e);break;case`ArrowUp`:ae(e);break;case`Home`:e.preventDefault(),ne(0);break;case`End`:e.preventDefault(),M();break;case`Enter`:{e.preventDefault();let t=k();if(t){let e=new Event(Wf);t.dispatchEvent(e)}}}}},_.createElement(`label`,{"cmdk-label":``,htmlFor:T.inputId,id:T.labelId,style:vp},c),_p(e,e=>_.createElement(Yf.Provider,{value:w},_.createElement(qf.Provider,{value:T},e))))}),$f=_.forwardRef((e,t)=>{let n=Ht(),r=_.useRef(null),i=_.useContext(Zf),a=Jf(),o=up(e),s=o.current?.forceMount??i?.forceMount;dp(()=>{if(!s)return a.item(n,i?.id)},[s]);let c=mp(n,r,[e.value,e.children,r],e.keywords),l=Xf(),u=pp(e=>e.value&&e.value===c.current),d=pp(e=>s||a.filter()===!1?!0:!e.search||e.filtered.items.get(n)>0);_.useEffect(()=>{let t=r.current;if(t&&!e.disabled)return t.addEventListener(Wf,f),()=>t.removeEventListener(Wf,f)},[d,e.onSelect,e.disabled]);function f(){var e,t;p(),(t=(e=o.current).onSelect)==null||t.call(e,c.current)}function p(){l.setState(`value`,c.current,!0)}if(!d)return null;let{disabled:m,value:h,onSelect:g,forceMount:v,keywords:y,...b}=e;return _.createElement(R.div,{ref:ye(r,t),...b,id:n,"cmdk-item":``,role:`option`,"aria-disabled":!!m,"aria-selected":!!u,"data-disabled":!!m,"data-selected":!!u,onPointerMove:m||a.getDisablePointerSelection()?void 0:p,onClick:m?void 0:f},e.children)}),ep=_.forwardRef((e,t)=>{let{heading:n,children:r,forceMount:i,...a}=e,o=Ht(),s=_.useRef(null),c=_.useRef(null),l=Ht(),u=Jf(),d=pp(e=>i||u.filter()===!1?!0:!e.search||e.filtered.groups.has(o));dp(()=>u.group(o),[]),mp(o,s,[e.value,e.heading,c]);let f=_.useMemo(()=>({id:o,forceMount:i}),[i]);return _.createElement(R.div,{ref:ye(s,t),...a,"cmdk-group":``,role:`presentation`,hidden:!d||void 0},n&&_.createElement(`div`,{ref:c,"cmdk-group-heading":``,"aria-hidden":!0,id:l},n),_p(e,e=>_.createElement(`div`,{"cmdk-group-items":``,role:`group`,"aria-labelledby":n?l:void 0},_.createElement(Zf.Provider,{value:f},e))))}),tp=_.forwardRef((e,t)=>{let{alwaysRender:n,...r}=e,i=_.useRef(null),a=pp(e=>!e.search);return!n&&!a?null:_.createElement(R.div,{ref:ye(i,t),...r,"cmdk-separator":``,role:`separator`})}),np=_.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,i=e.value!=null,a=Xf(),o=pp(e=>e.search),s=pp(e=>e.selectedItemId),c=Jf();return _.useEffect(()=>{e.value!=null&&a.setState(`search`,e.value)},[e.value]),_.createElement(R.input,{ref:t,...r,"cmdk-input":``,autoComplete:`off`,autoCorrect:`off`,spellCheck:!1,"aria-autocomplete":`list`,role:`combobox`,"aria-expanded":!0,"aria-controls":c.listId,"aria-labelledby":c.labelId,"aria-activedescendant":s,id:c.inputId,type:`text`,value:i?e.value:o,onChange:e=>{i||a.setState(`search`,e.target.value),n?.(e.target.value)}})}),rp=_.forwardRef((e,t)=>{let{children:n,label:r=`Suggestions`,...i}=e,a=_.useRef(null),o=_.useRef(null),s=pp(e=>e.selectedItemId),c=Jf();return _.useEffect(()=>{if(o.current&&a.current){let e=o.current,t=a.current,n,r=new ResizeObserver(()=>{n=requestAnimationFrame(()=>{let n=e.offsetHeight;t.style.setProperty(`--cmdk-list-height`,n.toFixed(1)+`px`)})});return r.observe(e),()=>{cancelAnimationFrame(n),r.unobserve(e)}}},[]),_.createElement(R.div,{ref:ye(a,t),...i,"cmdk-list":``,role:`listbox`,tabIndex:-1,"aria-activedescendant":s,"aria-label":r,id:c.listId},_p(e,e=>_.createElement(`div`,{ref:ye(o,c.listInnerRef),"cmdk-list-sizer":``},e)))}),ip=_.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:i,contentClassName:a,container:o,...s}=e;return _.createElement(oi,{open:n,onOpenChange:r},_.createElement(ui,{container:o},_.createElement(fi,{"cmdk-overlay":``,className:i}),_.createElement(gi,{"aria-label":e.label,"cmdk-dialog":``,className:a},_.createElement(Qf,{ref:t,...s}))))}),ap=_.forwardRef((e,t)=>pp(e=>e.filtered.count===0)?_.createElement(R.div,{ref:t,...e,"cmdk-empty":``,role:`presentation`}):null),op=_.forwardRef((e,t)=>{let{progress:n,children:r,label:i=`Loading...`,...a}=e;return _.createElement(R.div,{ref:t,...a,"cmdk-loading":``,role:`progressbar`,"aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":i},_p(e,e=>_.createElement(`div`,{"aria-hidden":!0},e)))}),sp=Object.assign(Qf,{List:rp,Item:$f,Input:np,Group:ep,Separator:tp,Dialog:ip,Empty:ap,Loading:op});function cp(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function lp(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function up(e){let t=_.useRef(e);return dp(()=>{t.current=e}),t}var dp=typeof window>`u`?_.useEffect:_.useLayoutEffect;function fp(e){let t=_.useRef();return t.current===void 0&&(t.current=e()),t}function pp(e){let t=Xf(),n=()=>e(t.snapshot());return _.useSyncExternalStore(t.subscribe,n,n)}function mp(e,t,n,r=[]){let i=_.useRef(),a=Jf();return dp(()=>{var o;let s=(()=>{for(let e of n){if(typeof e==`string`)return e.trim();if(typeof e==`object`&&`current`in e)return e.current?e.current.textContent?.trim():i.current}})(),c=r.map(e=>e.trim());a.value(e,s,c),(o=t.current)==null||o.setAttribute(Gf,s),i.current=s}),i}var hp=()=>{let[e,t]=_.useState(),n=fp(()=>new Map);return dp(()=>{n.current.forEach(e=>e()),n.current=new Map},[e]),(e,r)=>{n.current.set(e,r),t({})}};function gp(e){let t=e.type;return typeof t==`function`?t(e.props):`render`in t?t.render(e.props):e}function _p({asChild:e,children:t},n){return e&&_.isValidElement(t)?_.cloneElement(gp(t),{ref:t.ref},n(t.props.children)):n(t)}var vp={position:`absolute`,width:`1px`,height:`1px`,padding:`0`,margin:`-1px`,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,borderWidth:`0`};function yp({commands:e}){let{paletteOpen:t,setPaletteOpen:n}=id(),[r,i]=(0,_.useState)(``),a=(0,_.useMemo)(()=>{let t=new Map;for(let n of e){let e=t.get(n.group)??[];e.push(n),t.set(n.group,e)}return[...t.entries()]},[e]),o=e=>{n(!1),i(``),window.setTimeout(e.run,0)};return(0,L.jsx)(oi,{open:t,onOpenChange:e=>{n(e),e||i(``)},children:(0,L.jsxs)(ui,{children:[(0,L.jsx)(fi,{className:`fixed inset-0 z-50 bg-black/60 animate-in`}),(0,L.jsxs)(gi,{"aria-describedby":void 0,className:`fixed left-1/2 top-[14vh] z-50 w-[min(92vw,36rem)] -translate-x-1/2 overflow-hidden rounded-xl border border-border-focus bg-panel shadow-2xl shadow-black/70 animate-in`,children:[(0,L.jsx)(xi,{className:`sr-only`,children:`Command palette`}),(0,L.jsxs)(sp,{loop:!0,filter:(e,t,n)=>{let r=Ru(t,[e,...n??[]].join(` `));return r===null?0:Math.max(.01,Math.min(1,r/1e3))},children:[(0,L.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-border px-4`,children:[(0,L.jsx)(`span`,{className:`font-mono text-accent`,children:`\u203A`}),(0,L.jsx)(sp.Input,{value:r,onValueChange:i,placeholder:`Type a command or secret name\u2026`,className:`h-12 flex-1 bg-transparent text-sm text-text placeholder:text-dim focus:outline-none`})]}),(0,L.jsxs)(sp.List,{className:`max-h-[50vh] overflow-y-auto p-1.5`,children:[(0,L.jsx)(sp.Empty,{className:`px-3 py-8 text-center text-sm text-dim`,children:`No matches`}),a.map(([e,t])=>(0,L.jsx)(sp.Group,{heading:e,className:`[&_[cmdk-group-heading]]:px-2.5 [&_[cmdk-group-heading]]:pb-1 [&_[cmdk-group-heading]]:pt-2.5 [&_[cmdk-group-heading]]:text-[11px] [&_[cmdk-group-heading]]:font-semibold [&_[cmdk-group-heading]]:uppercase [&_[cmdk-group-heading]]:tracking-wider [&_[cmdk-group-heading]]:text-dim`,children:t.map(e=>(0,L.jsxs)(sp.Item,{value:`${e.title} ${e.id}`,keywords:[e.group,e.keywords??``],onSelect:()=>o(e),className:`group flex cursor-pointer items-center justify-between gap-3 rounded-md px-2.5 py-2 text-sm text-text data-[selected=true]:bg-selection data-[selected=true]:text-accent`,children:[(0,L.jsx)(`span`,{className:`truncate`,children:e.title}),e.hint?(0,L.jsx)(`span`,{className:`kbd shrink-0 group-data-[selected=true]:text-accent`,children:e.hint}):null]},e.id))},e))]})]})]})]})})}var bp=[100,200,500];function xp(e){return/delete|remove|revoke|tamper|quarantine|fail/i.test(e)?`text-danger`:/reveal|copy|read|otp|export|lease\\.use|exec/i.test(e)?`text-info`:/password|totp|passkey|recovery|pin|keychain|reseal|admin|unlock|lock/i.test(e)?`text-accent`:/create|add|link|import|update/i.test(e)?`text-success`:`text-muted`}function Sp(){let e=id(),[t,n]=(0,_.useState)(null),[r,i]=(0,_.useState)(200),[a,o]=(0,_.useState)(``),[s,c]=(0,_.useState)(null),l=(0,_.useRef)(null),u=(0,_.useRef)(null),d=(0,_.useCallback)(async(e=!0)=>{try{n(await X.audit(r)),e||j.success(`Reloaded`)}catch(e){j.error(Z(e))}},[r]);(0,_.useEffect)(()=>{d()},[d]);let f=(0,_.useMemo)(()=>a?zu(t??[],a,e=>[e.eventType,e.message,e.subjectRef,e.subjectType]):t??[],[t,a]),p=f.find(e=>e.id===s)??null,m=(0,_.useCallback)(e=>{if(f.length===0)return;let t=p?f.indexOf(p):-1,n=e===`top`?0:e===`bottom`?f.length-1:Math.max(0,Math.min(f.length-1,t+e));c(f[n].id),u.current?.querySelector(`[data-id="${CSS.escape(f[n].id)}"]`)?.scrollIntoView({block:`nearest`})},[f,p]);return(0,_.useEffect)(()=>{let t=t=>{if(t.defaultPrevented||e.paletteOpen||e.modalOpen||t.ctrlKey||t.metaKey||t.altKey||Ju(t.target))return;let n={j:()=>m(1),ArrowDown:()=>m(1),k:()=>m(-1),ArrowUp:()=>m(-1),g:()=>m(`top`),G:()=>m(`bottom`),"/":()=>l.current?.focus(),r:()=>void d(!1),Escape:()=>s?c(null):a?o(``):e.go(`vault`)}[t.key];n&&(t.preventDefault(),n())};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e,m,d,s,a]),ad((0,_.useMemo)(()=>[{id:`audit:reload`,title:`Reload audit log`,group:`Audit`,hint:`r`,run:()=>void d(!1)},{id:`audit:search`,title:`Search audit log`,group:`Audit`,hint:`/`,run:()=>l.current?.focus()},...bp.map(e=>({id:`audit:limit:${e}`,title:`Show the last ${e} events`,group:`Audit`,run:()=>i(e)}))],[d]),(0,_.useMemo)(()=>[[`j/k`,`move`],[`/`,`search`],[`r`,`reload`],[`esc`,`back`]],[])),(0,L.jsxs)(Yu,{className:`h-full`,title:(0,L.jsxs)(L.Fragment,{children:[`Audit log `,(0,L.jsxs)(`span`,{className:`text-dim`,children:[`\xB7 `,a?`${f.length} of ${t?.length??0}`:t?.length??0]})]}),actions:(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`select`,{value:r,onChange:e=>i(Number(e.target.value)),"aria-label":`How many events`,className:`h-7 cursor-pointer rounded-md border border-border bg-panel-alt px-2 text-xs text-text focus:border-border-focus focus:outline-none`,children:bp.map(e=>(0,L.jsxs)(`option`,{value:e,children:[`last `,e]},e))}),(0,L.jsx)(Q,{size:`icon-sm`,variant:`ghost`,onClick:()=>void d(!1),"aria-label":`Reload`,title:`Reload (r)`,children:(0,L.jsx)(ef,{})})]}),bodyClassName:`flex flex-col`,children:[(0,L.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-border px-4`,children:[(0,L.jsx)(af,{className:`size-4 text-dim`}),(0,L.jsx)(`input`,{ref:l,value:a,onChange:e=>o(e.target.value),onKeyDown:e=>{e.key===`Escape`?(e.preventDefault(),a?o(``):e.currentTarget.blur()):(e.key===`Enter`||e.key===`ArrowDown`)&&(e.preventDefault(),e.currentTarget.blur(),m(`top`))},placeholder:`Filter by event, message or subject`,"aria-label":`Filter audit events`,className:`h-10 flex-1 bg-transparent text-sm text-text placeholder:text-dim focus:outline-none`})]}),(0,L.jsx)(`div`,{ref:u,role:`listbox`,"aria-label":`Audit events`,className:`min-h-0 flex-1 overflow-y-auto p-1.5 font-mono text-xs`,children:t===null?(0,L.jsx)(`div`,{className:`flex justify-center py-10`,children:(0,L.jsx)(Qu,{})}):f.length===0?(0,L.jsx)(Zu,{icon:(0,L.jsx)(nf,{}),title:a?`No events match`:`No events yet`}):f.map(e=>{let t=e.id===s,n=Object.entries(e.metadata??{});return(0,L.jsxs)(`div`,{role:`option`,"aria-selected":t,"data-id":e.id,onClick:()=>c(t?null:e.id),className:G(`cursor-pointer rounded-md border-l-2 px-2.5 py-1.5`,t?`border-accent bg-selection`:`border-transparent hover:bg-selection/50`),children:[(0,L.jsxs)(`div`,{className:`flex items-baseline gap-3`,children:[(0,L.jsx)(`time`,{dateTime:e.createdAt,title:Uu(e.createdAt),className:`w-24 shrink-0 text-dim`,children:Wu(e.createdAt)}),(0,L.jsx)(`span`,{className:G(`w-44 shrink-0 truncate`,xp(e.eventType)),children:e.eventType}),(0,L.jsx)(`span`,{className:G(`min-w-0 flex-1 font-sans text-sm`,t?`text-text`:`truncate text-text/90`),children:e.message})]}),t?(0,L.jsxs)(`dl`,{className:`mt-2 grid grid-cols-[8rem_1fr] gap-x-3 gap-y-1 pb-1 pl-[6.75rem] text-muted`,children:[(0,L.jsx)(`dt`,{className:`text-dim`,children:`time`}),(0,L.jsx)(`dd`,{children:Uu(e.createdAt)}),(0,L.jsx)(`dt`,{className:`text-dim`,children:`subject`}),(0,L.jsxs)(`dd`,{className:`break-all`,children:[e.subjectType,e.subjectRef?` \xB7 ${e.subjectRef}`:``]}),n.map(([e,t])=>(0,L.jsxs)(`div`,{className:`contents`,children:[(0,L.jsx)(`dt`,{className:`truncate text-dim`,children:e}),(0,L.jsx)(`dd`,{className:`break-all`,children:typeof t==`string`?t:JSON.stringify(t)})]},e))]}):null]},e.id)})})]})}var Cp=`This browser or authenticator doesn\'t support the PRF extension needed to encrypt the vault. Try a recent Chrome, Edge or Safari, or a FIDO2 security key.`;function wp(e){let t=e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength),n=``;for(let e of t)n+=String.fromCharCode(e);return btoa(n).replace(/\\+/g,`-`).replace(/\\//g,`_`).replace(/=+$/,``)}function Tp(e){let t=e.replace(/-/g,`+`).replace(/_/g,`/`)+`=`.repeat((4-e.length%4)%4);return Uint8Array.from(atob(t),e=>e.charCodeAt(0))}var Ep=()=>crypto.getRandomValues(new Uint8Array(32));function Dp(e){return e.getClientExtensionResults().prf}function Op(){return typeof window.PublicKeyCredential==`function`&&window.isSecureContext}function kp(e){return Op()?location.hostname===e?null:`Passkeys are tied to "${e}". Open http://${e}:${location.port} instead.`:`This browser doesn\'t support passkeys here.`}async function Ap(e,t){let n={};for(let e of t)n[e.credentialId]={first:Tp(e.prfSalt)};let r=await navigator.credentials.get({publicKey:{rpId:e,challenge:Ep(),userVerification:`required`,timeout:12e4,allowCredentials:t.map(e=>({type:`public-key`,id:Tp(e.credentialId),transports:e.transports})),extensions:{prf:{evalByCredential:n}}}});if(!r)throw Error(`No passkey was used`);let i=Dp(r)?.results?.first;if(!i)throw Error(Cp);return{credentialId:wp(r.rawId),prfOutput:wp(i)}}async function jp(e,t){let n=Tp(e.prfSalt),r=await navigator.credentials.create({publicKey:{rp:{id:e.rpId,name:`autho`},user:{id:Tp(e.userId),name:e.userName,displayName:e.userName},challenge:Ep(),pubKeyCredParams:[{type:`public-key`,alg:-7},{type:`public-key`,alg:-8},{type:`public-key`,alg:-257}],authenticatorSelection:{userVerification:`required`,residentKey:`preferred`},attestation:`none`,timeout:12e4,excludeCredentials:e.exclude.map(e=>({type:`public-key`,id:Tp(e)})),extensions:{prf:{eval:{first:n}}}}});if(!r)throw Error(`No passkey was created`);let i=Dp(r);if(!i||i.enabled===!1)throw Error(Cp);let a=i.results?.first;if(!a){t?.();let i=await navigator.credentials.get({publicKey:{rpId:e.rpId,challenge:Ep(),userVerification:`required`,timeout:12e4,allowCredentials:[{type:`public-key`,id:r.rawId}],extensions:{prf:{eval:{first:n}}}}});a=i?Dp(i)?.results?.first:void 0}if(!a)throw Error(Cp);let o=r.response;return{credentialId:wp(r.rawId),prfOutput:wp(a),transports:o.getTransports?.()??[]}}var Mp=oi;function Np({className:e,children:t,title:n,description:r,danger:i,hideClose:a,...o}){return(0,L.jsxs)(ui,{children:[(0,L.jsx)(fi,{className:`fixed inset-0 z-50 bg-black/70 backdrop-blur-[2px] animate-in`}),(0,L.jsxs)(gi,{className:G(`fixed left-1/2 top-[10vh] z-50 flex max-h-[80vh] w-[min(92vw,30rem)] -translate-x-1/2 flex-col overflow-hidden rounded-xl border bg-panel shadow-2xl shadow-black/60 animate-in focus:outline-none`,i?`border-danger/60`:`border-border-focus`,e),...o,children:[(0,L.jsxs)(`div`,{className:`flex items-start justify-between gap-4 border-b border-border px-5 py-3.5`,children:[(0,L.jsxs)(`div`,{className:`min-w-0`,children:[(0,L.jsx)(xi,{className:G(`text-sm font-semibold`,i?`text-danger`:`text-accent`),children:n}),r?(0,L.jsx)(Ci,{className:`mt-1 text-xs text-muted`,children:r}):(0,L.jsx)(Ci,{className:`sr-only`,children:typeof n==`string`?n:`Dialog`})]}),a?null:(0,L.jsx)(Ti,{className:`cursor-pointer rounded p-1 text-dim hover:bg-selection hover:text-text`,"aria-label":`Close`,children:(0,L.jsx)(xf,{className:`size-4`})})]}),(0,L.jsx)(`div`,{className:`overflow-y-auto px-5 py-4`,children:t})]})]})}function Pp({className:e,...t}){return(0,L.jsx)(`div`,{className:G(`mt-5 flex flex-wrap items-center justify-end gap-2`,e),...t})}var Fp=`w-full rounded-md border border-border bg-input px-3 text-sm text-text placeholder:text-dim transition-colors focus:border-accent focus:bg-input-focus focus:outline-none disabled:opacity-50 aria-invalid:border-danger`;function Ip({className:e,...t}){return(0,L.jsx)(`input`,{spellCheck:!1,autoComplete:`off`,className:G(Fp,`h-9`,e),...t})}function Lp({className:e,...t}){return(0,L.jsx)(`textarea`,{spellCheck:!1,className:G(Fp,`min-h-24 resize-y py-2 leading-relaxed`,e),...t})}function Rp({className:e,...t}){return(0,L.jsx)(Rs,{className:G(`text-xs font-medium uppercase tracking-wide text-muted`,e),...t})}function zp({label:e,htmlFor:t,hint:n,error:r,children:i,className:a}){return(0,L.jsxs)(`div`,{className:G(`flex flex-col gap-1.5`,a),children:[(0,L.jsx)(Rp,{htmlFor:t,children:e}),i,r?(0,L.jsx)(`p`,{className:`text-xs text-danger`,children:r}):n?(0,L.jsx)(`p`,{className:`text-xs text-dim`,children:n}):null]})}function Bp(e){let[t,n]=(0,_.useState)(null),[r,i]=(0,_.useState)(null),a=(0,_.useRef)(!1),o=(0,_.useCallback)(async(e,t)=>{try{await e(t),a.current=!1}catch(t){if(t instanceof $u&&t.status===403&&!a.current){a.current=!0,n(null),i(()=>e);return}throw a.current=!1,t}},[]);return{withAdmin:(0,_.useCallback)(e=>{t!==null&&t-Date.now()>5e3?o(e,null).catch(()=>{}):i(()=>e)},[t,o]),adminUntil:t,setAdminUntil:n,gate:(0,L.jsx)(Mp,{open:r!==null,onOpenChange:e=>!e&&i(null),children:r?(0,L.jsx)(Vp,{onAuthorized:t=>{let a=r;i(null),n(t.adminUntil),e?.(t),o(a,t).catch(()=>{})}}):null})}}function Vp({onAuthorized:e}){let[t,n]=(0,_.useState)(null),[r,i]=(0,_.useState)(``),[a,o]=(0,_.useState)(``),[s,c]=(0,_.useState)(``),[l,u]=(0,_.useState)(!1),{setModalOpen:d}=id();(0,_.useEffect)(()=>(d(!0),X.auth().then(n,e=>c(Z(e))),()=>d(!1)),[d]);let f=async t=>{u(!0),c(``);try{e(await X.authorize(t))}catch(e){c(e instanceof DOMException&&e.name===`NotAllowedError`?`The passkey prompt was cancelled or timed out`:Z(e)),t.method===`password`&&(i(``),o(``)),u(!1)}},p=e=>{e.preventDefault(),r&&f({method:`password`,password:r,totp:t?.totp?a:void 0})},m=async()=>{if(t){u(!0),c(``);try{let e=await Ap(t.rpId,t.passkeys);await f({method:`passkey`,...e})}catch(e){c(e instanceof DOMException&&e.name===`NotAllowedError`?`The passkey prompt was cancelled or timed out`:Z(e)),u(!1)}}},h=t!==null&&t.passkeys.length>0&&kp(t.rpId)===null;return(0,L.jsx)(Np,{title:(0,L.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,L.jsx)(lf,{className:`size-4`}),`Confirm it\'s you`]}),description:`Security changes need your master password. You won\'t be asked again for 5 minutes.`,children:!t&&!s?(0,L.jsx)(`div`,{className:`flex justify-center py-6`,children:(0,L.jsx)(Qu,{})}):(0,L.jsxs)(`form`,{onSubmit:p,className:`flex flex-col gap-4`,children:[(0,L.jsx)(`input`,{type:`text`,name:`username`,autoComplete:`username`,value:`autho:${t?.vault??``}`,readOnly:!0,hidden:!0}),(0,L.jsx)(zp,{label:`Master password`,htmlFor:`admin-password`,children:(0,L.jsx)(Ip,{id:`admin-password`,type:`password`,autoComplete:`current-password`,autoFocus:!0,value:r,onChange:e=>i(e.target.value),disabled:l,maxLength:1024})}),t?.totp?(0,L.jsx)(zp,{label:`Authenticator code`,htmlFor:`admin-totp`,children:(0,L.jsx)(Ip,{id:`admin-totp`,inputMode:`numeric`,autoComplete:`one-time-code`,placeholder:`123 456`,className:`font-mono tracking-[0.3em]`,value:a,onChange:e=>o(e.target.value.replace(/[^\\d ]/g,``).slice(0,9)),disabled:l})}):null,s?(0,L.jsxs)(`p`,{role:`alert`,className:`text-sm text-danger`,children:[`\u2717 `,s]}):null,(0,L.jsxs)(Pp,{className:`mt-1`,children:[h?(0,L.jsxs)(Q,{type:`button`,variant:`secondary`,onClick:()=>void m(),disabled:l,className:`mr-auto`,children:[(0,L.jsx)(Hd,{}),`Use passkey`]}):null,(0,L.jsxs)(Q,{type:`submit`,variant:`primary`,disabled:l||!r||t?.totp===!0&&a.replace(/\\s/g,``).length<6,children:[l?(0,L.jsx)(Qu,{className:`border-on-accent/30 border-t-on-accent`}):null,`Confirm`]})]})]})})}function Hp({title:e,body:t,action:n,onConfirm:r,onCancel:i}){let[a,o]=(0,_.useState)(!1);return(0,L.jsx)(Np,{danger:!0,title:e,description:t,children:(0,L.jsxs)(Pp,{className:`mt-0`,children:[(0,L.jsxs)(Q,{variant:`ghost`,onClick:i,disabled:a,children:[`Cancel `,(0,L.jsx)(Xu,{children:`esc`})]}),(0,L.jsxs)(Q,{variant:`danger`,autoFocus:!0,disabled:a,onClick:()=>{o(!0),Promise.resolve(r()).catch(()=>{}).finally(()=>o(!1))},children:[a?(0,L.jsx)(Qu,{}):null,n]})]})})}function Up({className:e,...t}){return(0,L.jsx)(Ys,{className:G(`relative inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border border-border bg-chip transition-colors data-[state=checked]:border-accent data-[state=checked]:bg-accent/25 disabled:cursor-not-allowed disabled:opacity-40`,e),...t,children:(0,L.jsx)(Zs,{className:`block size-3.5 translate-x-0.5 rounded-full bg-muted transition-transform data-[state=checked]:translate-x-[18px] data-[state=checked]:bg-accent`})})}var Wp=8388608;function Gp(){let e=id(),[t,n]=(0,_.useState)(null),[r,i]=(0,_.useState)(!1),[a,o]=(0,_.useState)(null),[s,c]=(0,_.useState)(null),{withAdmin:l,gate:u}=Bp(),{setModalOpen:d}=e,f=(0,_.useCallback)(async(e=!1)=>{i(!0);try{let t=await X.verify();n(t),e&&(t.state===`intact`?j.success(`Vault seal is intact`):j.error(t.state===`unsealed`?`Vault isn\'t sealed yet`:`Vault was modified outside autho`))}catch(e){j.error(Z(e))}finally{i(!1)}},[]);(0,_.useEffect)(()=>{f()},[f]),(0,_.useEffect)(()=>(d(s!==null),()=>d(!1)),[s,d]);let p=(0,_.useCallback)(e=>{l(async()=>{try{let t=await X.reseal(e);o(t),j.success(t.wasIntact?`The seal is intact; nothing to do`:e===`accept`?`Vault re-sealed as it is now`:`Vault re-sealed`),await f()}catch(e){if(e instanceof $u&&e.status===403)throw e;j.error(Z(e))}})},[l,f]),m=t!==null&&t.state!==`intact`;return(0,_.useEffect)(()=>{let t=t=>{t.defaultPrevented||e.paletteOpen||e.modalOpen||t.ctrlKey||t.metaKey||t.altKey||Ju(t.target)||(t.key===`v`||t.key===`r`?(t.preventDefault(),f(!0)):t.key===`Escape`&&e.go(`vault`))};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e,f]),ad((0,_.useMemo)(()=>[{id:`health:verify`,title:`Verify vault seal`,group:`Integrity`,hint:`v`,run:()=>void f(!0)},...m?[{id:`health:quarantine`,title:`Undo outside changes and re-seal`,group:`Integrity`,run:()=>c(`quarantine`)},{id:`health:accept`,title:`Accept the vault as it is and re-seal`,group:`Integrity`,run:()=>c(`accept`)}]:[]],[f,m]),(0,_.useMemo)(()=>[[`v`,`verify`],[`esc`,`back`]],[])),(0,L.jsxs)(`div`,{className:`mx-auto flex h-full min-h-0 w-full max-w-4xl flex-col gap-3 overflow-y-auto sm:gap-4`,children:[(0,L.jsx)(Yu,{title:`Vault seal`,actions:(0,L.jsxs)(Q,{size:`sm`,variant:`ghost`,onClick:()=>void f(!0),disabled:r,children:[r?(0,L.jsx)(Qu,{}):(0,L.jsx)(ef,{}),`Verify `,(0,L.jsx)(Xu,{children:`v`})]}),className:`shrink-0`,children:t===null?(0,L.jsx)(`div`,{className:`flex justify-center py-10`,children:(0,L.jsx)(Qu,{})}):(0,L.jsxs)(`div`,{className:`flex flex-col gap-4 p-4`,children:[(0,L.jsx)(Kp,{seal:t}),t.state===`tampered`&&t.changes?.length?(0,L.jsx)(Jp,{changes:t.changes,trusted:t.diffTrusted!==!1}):null,m?(0,L.jsxs)(`div`,{className:`flex flex-col gap-3 rounded-lg border border-border bg-panel-alt p-4`,children:[(0,L.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[t.state===`tampered`?(0,L.jsx)(Q,{variant:`danger`,onClick:()=>c(`quarantine`),children:`Undo changes and revoke leases`}):null,(0,L.jsx)(Q,{variant:t.state===`tampered`?`secondary`:`primary`,onClick:()=>c(`accept`),children:t.state===`tampered`?`I made this change \u2014 accept it`:`Seal the vault now`})]}),(0,L.jsx)(`p`,{className:`text-xs text-dim`,children:t.state===`tampered`?`Undo puts edited and deleted rows back, removes added ones and revokes every active lease. Accept keeps the vault as it is. Both ask for your master password.`:`Sealing signs the current contents so later outside edits are caught. It asks for your master password.`})]}):null,a&&!a.wasIntact?(0,L.jsx)(Yp,{result:a}):null]})}),(0,L.jsx)(Xp,{}),(0,L.jsxs)(Mp,{open:s!==null,onOpenChange:e=>!e&&c(null),children:[s===`quarantine`?(0,L.jsx)(Hp,{title:`Undo the outside changes?`,body:`Edited and deleted rows are restored, added rows are removed, and every active lease is revoked.`,action:`Undo and re-seal`,onConfirm:()=>{c(null),p(`quarantine`)},onCancel:()=>c(null)}):null,s===`accept`?(0,L.jsx)(Hp,{title:t?.state===`tampered`?`Accept the vault as it is?`:`Seal the vault?`,body:t?.state===`tampered`?`Only do this if you made the change yourself. The current contents become the trusted state.`:`The current contents become the trusted state.`,action:t?.state===`tampered`?`Accept and re-seal`:`Seal`,onConfirm:()=>{c(null),p(`accept`)},onCancel:()=>c(null)}):null]}),u]})}function Kp({seal:e}){return e.state===`intact`?(0,L.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,L.jsx)(lf,{className:`mt-0.5 size-6 shrink-0 text-success`}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`p`,{className:`font-medium text-success`,children:`Seal is intact`}),(0,L.jsx)(`p`,{className:`text-sm text-muted`,children:`Nothing in the vault changed outside autho since it was last sealed.`})]})]}):e.state===`unsealed`?(0,L.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,L.jsx)(df,{className:`mt-0.5 size-6 shrink-0 text-info`}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`p`,{className:`font-medium text-info`,children:`Not sealed yet`}),(0,L.jsx)(`p`,{className:`text-sm text-muted`,children:`Without a seal, edits made outside autho can\'t be detected.`})]})]}):(0,L.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,L.jsx)(sf,{className:`mt-0.5 size-6 shrink-0 text-danger`}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`p`,{className:`font-medium text-danger`,children:`Modified outside autho`}),(0,L.jsxs)(`p`,{className:`text-sm text-muted`,children:[e.reason??`The vault no longer matches its seal`,`.`]})]})]})}var qp={added:`text-success`,modified:`text-accent`,removed:`text-danger`};function Jp({changes:e,trusted:t,title:n}){return(0,L.jsxs)(`div`,{children:[n?(0,L.jsx)(`p`,{className:`mb-1.5 text-xs font-semibold uppercase tracking-wider text-muted`,children:n}):null,t?null:(0,L.jsx)(`p`,{className:`mb-2 text-xs text-info`,children:`The stored row signatures were edited too, so this list may be incomplete.`}),(0,L.jsx)(`ul`,{className:`max-h-64 overflow-y-auto rounded-md border border-border font-mono text-xs`,children:e.map(e=>(0,L.jsxs)(`li`,{className:`flex gap-3 border-b border-border px-3 py-1.5 last:border-b-0`,children:[(0,L.jsx)(`span`,{className:G(`w-16 shrink-0`,qp[e.change]),children:e.change}),(0,L.jsx)(`span`,{className:`w-24 shrink-0 text-muted`,children:e.table}),(0,L.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-dim`,children:e.rowId})]},`${e.table}:${e.rowId}:${e.change}`))})]})}function Yp({result:e}){return(0,L.jsxs)(`div`,{className:`flex flex-col gap-3 rounded-lg border border-border p-4`,children:[(0,L.jsx)(`p`,{className:`text-sm text-text`,children:e.mode===`accept`?`Re-sealed with the vault as it was.`:`Re-sealed. Revoked ${e.revokedLeases} active lease${e.revokedLeases===1?``:`s`}${e.undone.length?`, undid ${e.undone.length} change${e.undone.length===1?``:`s`}`:``}.`}),e.kept.length?(0,L.jsx)(Jp,{title:`Couldn\'t undo \u2014 check these by hand`,changes:e.kept,trusted:!0}):null]})}function Xp(){let[e,t]=(0,_.useState)(null),[n,r]=(0,_.useState)(!0),[i,a]=(0,_.useState)(``),[o,s]=(0,_.useState)(!1),[c,l]=(0,_.useState)(!1),u=(0,_.useRef)(null),d=async e=>{if(a(``),t(null),e){if(e.size>Wp)return a(`That file is larger than 8 MB`);try{let n=JSON.parse(await e.text());if(!Array.isArray(n))return a(`A legacy backup is a JSON array of secrets`);t({name:e.name,entries:n})}catch{a(`That file isn\'t valid JSON`)}}},f=async()=>{if(e){s(!0),a(``);try{let{imported:r,skipped:i}=await X.importLegacy(e.entries,n);j.success(`Imported ${r} secret${r===1?``:`s`}`,{description:i?`Skipped ${i} that already existed`:void 0}),t(null),u.current&&(u.current.value=``)}catch(e){a(Z(e))}finally{s(!1)}}};return(0,L.jsx)(Yu,{title:`Import legacy backup`,className:`shrink-0`,children:(0,L.jsxs)(`div`,{className:`flex flex-col gap-4 p-4`,children:[(0,L.jsxs)(`p`,{className:`text-sm text-muted`,children:[`Bring in secrets from an autho v1 JSON backup, like `,(0,L.jsx)(`code`,{className:`font-mono text-xs`,children:`autho import legacy --file`}),`. The file is read in this browser and sent only to this autho.`]}),(0,L.jsxs)(`label`,{onDragOver:e=>{e.preventDefault(),l(!0)},onDragLeave:()=>l(!1),onDrop:e=>{e.preventDefault(),l(!1),d(e.dataTransfer.files[0])},className:G(`flex cursor-pointer flex-col items-center gap-2 rounded-lg border border-dashed px-4 py-6 text-center transition-colors`,c?`border-accent bg-selection`:`border-border hover:border-border-focus`),children:[(0,L.jsx)(Bd,{className:`size-6 text-dim`}),e?(0,L.jsxs)(`span`,{className:`text-sm text-text`,children:[e.name,` `,(0,L.jsxs)(`span`,{className:`text-dim`,children:[`\xB7 `,e.entries.length,` entr`,e.entries.length===1?`y`:`ies`]})]}):(0,L.jsx)(`span`,{className:`text-sm text-muted`,children:`Drop a .json file here, or click to choose one`}),(0,L.jsx)(`input`,{ref:u,type:`file`,accept:`.json,application/json`,className:`sr-only`,onChange:e=>void d(e.target.files?.[0])})]}),(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,L.jsxs)(`label`,{className:`flex items-center gap-3 text-sm text-text`,children:[(0,L.jsx)(Up,{checked:n,onCheckedChange:r,"aria-label":`Skip existing secrets`}),`Skip secrets that already exist`]}),(0,L.jsxs)(Q,{variant:`primary`,onClick:()=>void f(),disabled:!e||o,children:[o?(0,L.jsx)(Qu,{className:`border-on-accent/30 border-t-on-accent`}):null,`Import`]})]}),n?null:(0,L.jsx)(`p`,{className:`text-xs text-dim`,children:`With this off, the import stops at the first name that already exists, and nothing is imported.`}),i?(0,L.jsxs)(`p`,{role:`alert`,className:`text-sm text-danger`,children:[`\u2717 `,i]}):null]})})}function Zp(e,t){return e.revokedAt?`revoked`:Date.parse(e.expiresAt)<=t?`expired`:`active`}var Qp={active:`text-success`,expired:`text-dim`,revoked:`text-danger`};function $p(){let e=id(),[t,n]=(0,_.useState)(null),[r,i]=(0,_.useState)(null),[a,o]=(0,_.useState)(!1),[s,c]=(0,_.useState)(null),[l,u]=(0,_.useState)(Date.now()),d=(0,_.useRef)(null),{setModalOpen:f}=e,p=(0,_.useCallback)(async(e=!0)=>{try{n(await X.leases()),u(Date.now()),e||j.success(`Reloaded`)}catch(e){j.error(Z(e))}},[]);(0,_.useEffect)(()=>{p()},[p]),(0,_.useEffect)(()=>{let e=window.setInterval(()=>u(Date.now()),15e3);return()=>window.clearInterval(e)},[]),(0,_.useEffect)(()=>(f(s!==null),()=>f(!1)),[s,f]);let m=(0,_.useMemo)(()=>(t??[]).filter(e=>a||Zp(e,l)===`active`),[t,a,l]),h=m.find(e=>e.id===r)??m[0]??null,g=(t?.length??0)-m.length,v=(0,_.useCallback)(e=>{if(m.length===0)return;let t=h?m.indexOf(h):0,n=e===`top`?0:e===`bottom`?m.length-1:Math.max(0,Math.min(m.length-1,t+e));i(m[n].id),d.current?.querySelector(`[data-id="${CSS.escape(m[n].id)}"]`)?.scrollIntoView({block:`nearest`})},[m,h]),y=h!==null&&Zp(h,l)===`active`,b=(0,_.useCallback)(async()=>{if(h)try{await X.revokeLease(h.id),j.success(`Revoked "${h.name}"`),await p()}catch(e){j.error(Z(e))}},[h,p]);return(0,_.useEffect)(()=>{let t=t=>{if(t.defaultPrevented||e.paletteOpen||e.modalOpen||t.ctrlKey||t.metaKey||t.altKey||Ju(t.target))return;let n={j:()=>v(1),ArrowDown:()=>v(1),k:()=>v(-1),ArrowUp:()=>v(-1),g:()=>v(`top`),G:()=>v(`bottom`),n:()=>c(`new`),r:()=>void p(!1),a:()=>o(e=>!e),x:()=>y&&c(`revoke`),d:()=>y&&c(`revoke`),Delete:()=>y&&c(`revoke`),Escape:()=>e.go(`vault`)}[t.key];n&&(t.preventDefault(),n())};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e,v,p,y]),ad((0,_.useMemo)(()=>[{id:`lease:new`,title:`New lease`,group:`Leases`,hint:`n`,run:()=>c(`new`)},{id:`lease:reload`,title:`Reload leases`,group:`Leases`,hint:`r`,run:()=>void p(!1)},{id:`lease:all`,title:a?`Show active leases only`:`Show expired and revoked leases`,group:`Leases`,hint:`a`,run:()=>o(e=>!e)},...y?[{id:`lease:revoke`,title:`Revoke "${h.name}"`,group:`Selected`,hint:`x`,run:()=>c(`revoke`)}]:[]],[p,a,y,h]),(0,_.useMemo)(()=>[[`j/k`,`move`],[`n`,`new`],[`x`,`revoke`],[`a`,a?`active only`:`show all`],[`r`,`reload`]],[a])),(0,L.jsxs)(`div`,{className:`grid h-full min-h-0 grid-cols-1 gap-3 md:grid-cols-[minmax(18rem,26rem)_1fr] sm:gap-4`,children:[(0,L.jsxs)(Yu,{title:(0,L.jsxs)(L.Fragment,{children:[`Leases `,(0,L.jsxs)(`span`,{className:`text-dim`,children:[`\xB7 `,m.length,g>0?` (+${g} ended)`:``]})]}),actions:(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(Q,{size:`icon-sm`,variant:`ghost`,onClick:()=>void p(!1),"aria-label":`Reload`,title:`Reload (r)`,children:(0,L.jsx)(ef,{})}),(0,L.jsxs)(Q,{size:`sm`,variant:`primary`,onClick:()=>c(`new`),children:[(0,L.jsx)(Qd,{}),`New`]})]}),bodyClassName:`flex flex-col`,children:[(0,L.jsxs)(`label`,{className:`flex items-center gap-2 border-b border-border px-4 py-2 text-xs text-muted`,children:[(0,L.jsx)(Up,{checked:a,onCheckedChange:o,"aria-label":`Show ended leases`}),`Show expired and revoked`]}),(0,L.jsx)(`div`,{ref:d,role:`listbox`,"aria-label":`Leases`,className:`min-h-0 flex-1 overflow-y-auto p-1.5`,children:t===null?(0,L.jsx)(`div`,{className:`flex justify-center py-10`,children:(0,L.jsx)(Qu,{})}):m.length===0?(0,L.jsxs)(Zu,{icon:(0,L.jsx)(Wd,{}),title:a?`No leases yet`:`No active leases`,children:[`A lease grants time-boxed access to some secrets, for `,(0,L.jsx)(`code`,{className:`font-mono`,children:`autho exec --lease`}),` and the daemon. Press `,(0,L.jsx)(Xu,{children:`n`}),` to create one.`]}):m.map(e=>{let t=Zp(e,l),n=e.id===h?.id;return(0,L.jsxs)(`div`,{role:`option`,"aria-selected":n,"data-id":e.id,onClick:()=>i(e.id),className:G(`flex cursor-pointer items-center gap-3 rounded-md border-l-2 px-2.5 py-2 transition-colors`,n?`border-accent bg-selection`:`border-transparent hover:bg-selection/50`),children:[(0,L.jsx)(`span`,{className:G(`text-xs`,Qp[t]),"aria-hidden":!0,children:`\u25CF`}),(0,L.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,L.jsx)(`div`,{className:G(`truncate text-sm`,n?`text-accent`:`text-text`),children:e.name}),(0,L.jsx)(`div`,{className:`truncate text-xs text-dim`,children:t===`active`?`expires ${Wu(e.expiresAt,l)}`:t===`revoked`?`revoked ${Wu(e.revokedAt,l)}`:`expired ${Wu(e.expiresAt,l)}`})]}),(0,L.jsxs)(`span`,{className:`shrink-0 text-xs text-dim`,children:[e.coverage.length,` secret`,e.coverage.length===1?``:`s`]})]},e.id)})})]}),(0,L.jsx)(Yu,{title:h?h.name:`Lease`,actions:y?(0,L.jsxs)(Q,{size:`sm`,variant:`danger`,onClick:()=>c(`revoke`),children:[`Revoke `,(0,L.jsx)(Xu,{className:`border-danger/40 text-danger`,children:`x`})]}):void 0,bodyClassName:`overflow-y-auto`,children:h?(0,L.jsxs)(`div`,{className:`divide-y divide-border`,children:[(0,L.jsx)(em,{label:`Status`,children:(0,L.jsx)(`span`,{className:Qp[Zp(h,l)],children:Zp(h,l)})}),(0,L.jsx)(em,{label:`ID`,children:(0,L.jsx)(`span`,{className:`break-all font-mono text-xs`,children:h.id})}),(0,L.jsx)(em,{label:`Created`,children:Uu(h.createdAt)}),(0,L.jsxs)(em,{label:Zp(h,l)===`active`?`Expires`:`Expired`,children:[Uu(h.expiresAt),` `,(0,L.jsxs)(`span`,{className:`text-dim`,children:[`\xB7 `,Wu(h.expiresAt,l)]})]}),h.revokedAt?(0,L.jsx)(em,{label:`Revoked`,children:Uu(h.revokedAt)}):null,(0,L.jsx)(em,{label:`Linked secrets`,children:h.includeLinks?`included`:(0,L.jsx)(`span`,{className:`text-muted`,children:`not included`})}),(0,L.jsxs)(`div`,{className:`px-4 py-3.5`,children:[(0,L.jsx)(`div`,{className:`mb-2 text-xs font-semibold uppercase tracking-wider text-muted`,children:`Covers`}),(0,L.jsx)(`ul`,{className:`flex flex-col gap-1`,children:h.coverage.map(e=>{let t=Iu[e.type];return(0,L.jsxs)(`li`,{className:`flex items-center gap-3 rounded-md bg-panel-alt px-3 py-1.5`,children:[(0,L.jsx)(`span`,{className:G(`w-3 text-center text-xs`,t.color),children:t.glyph}),(0,L.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-sm text-text`,children:e.name}),e.via?(0,L.jsxs)(`span`,{className:`truncate text-xs text-dim`,children:[`via `,e.via.name]}):null]},e.id)})})]})]}):(0,L.jsx)(Zu,{icon:(0,L.jsx)(Wd,{}),title:`Nothing selected`})}),(0,L.jsxs)(Mp,{open:s!==null,onOpenChange:e=>!e&&c(null),children:[s===`new`?(0,L.jsx)(tm,{onCreated:e=>{c(null),o(!1),i(e.id),p()}}):null,s===`revoke`&&h?(0,L.jsx)(Hp,{title:`Revoke "${h.name}"?`,body:`Anything using this lease loses access to its secrets right away.`,action:`Revoke`,onConfirm:async()=>{c(null),await b()},onCancel:()=>c(null)}):null]})]})}function em({label:e,children:t}){return(0,L.jsxs)(`div`,{className:`flex flex-wrap items-baseline gap-x-4 gap-y-1 px-4 py-3`,children:[(0,L.jsx)(`span`,{className:`w-32 shrink-0 text-xs font-semibold uppercase tracking-wider text-muted`,children:e}),(0,L.jsx)(`span`,{className:`min-w-0 flex-1 text-sm text-text`,children:t})]})}function tm({onCreated:e}){let[t,n]=(0,_.useState)(null),[r,i]=(0,_.useState)(``),[a,o]=(0,_.useState)(``),[s,c]=(0,_.useState)(!0),[l,u]=(0,_.useState)(()=>new Set),[d,f]=(0,_.useState)(``),[p,m]=(0,_.useState)(0),[h,g]=(0,_.useState)(null),[v,y]=(0,_.useState)(!1);(0,_.useEffect)(()=>{Promise.all([X.secrets(),X.settings()]).then(([e,t])=>{n(e);let r=t.preferences.find(e=>e.key===`defaultLeaseTtl`)?.value;o(typeof r==`number`&&r>0?Gu(r):`1h`)}).catch(e=>g({message:Z(e)}))},[]);let b=(0,_.useMemo)(()=>zu(t??[],d,e=>[e.name,e.username,e.url]),[t,d]);(0,_.useEffect)(()=>m(0),[d]);let x=e=>u(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n}),S=async t=>{t.preventDefault();let n=Ku(a);if(n===null||n<=0)return g({field:`ttl`,message:`Use a duration like 90s, 15m, 2h or 1d`});if(n>2592e3)return g({field:`ttl`,message:`At most 30 days`});if(l.size===0)return g({field:`secrets`,message:`Pick at least one secret`});y(!0),g(null);try{let t=await X.createLease({name:r.trim()||`web`,secrets:[...l],ttlSeconds:n,includeLinks:s});j.success(`Created lease "${t.name}"`,{description:`ID ${t.id} \xB7 expires ${Wu(t.expiresAt)}`}),e(t)}catch(e){g({message:Z(e)}),y(!1)}},C=e=>h?.field===e?h.message:void 0;return(0,L.jsx)(Np,{title:`New lease`,description:`Grant time-boxed access to a set of secrets.`,className:`w-[min(94vw,36rem)]`,children:(0,L.jsxs)(`form`,{onSubmit:e=>void S(e),className:`flex flex-col gap-4`,children:[(0,L.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 sm:grid-cols-[1fr_9rem]`,children:[(0,L.jsx)(zp,{label:`Name`,htmlFor:`lease-name`,children:(0,L.jsx)(Ip,{id:`lease-name`,autoFocus:!0,value:r,onChange:e=>i(e.target.value),placeholder:`web`,maxLength:200})}),(0,L.jsx)(zp,{label:`Expires after`,htmlFor:`lease-ttl`,error:C(`ttl`),children:(0,L.jsx)(Ip,{id:`lease-ttl`,value:a,onChange:e=>{o(e.target.value),g(null)},placeholder:`1h`,className:`font-mono`,"aria-invalid":!!C(`ttl`)||void 0})})]}),(0,L.jsx)(zp,{label:`Secrets${l.size?` \xB7 ${l.size} picked`:``}`,htmlFor:`lease-search`,error:C(`secrets`),children:(0,L.jsx)(Ip,{id:`lease-search`,value:d,onChange:e=>f(e.target.value),placeholder:`Search, then space or enter to pick`,onKeyDown:e=>{e.key===`ArrowDown`?(e.preventDefault(),m(e=>Math.min(b.length-1,e+1))):e.key===`ArrowUp`?(e.preventDefault(),m(e=>Math.max(0,e-1))):(e.key===`Enter`||e.key===` `&&!d)&&b[p]&&(e.preventDefault(),x(b[p].id),g(null))}})}),(0,L.jsx)(`div`,{role:`listbox`,"aria-multiselectable":!0,"aria-label":`Secrets`,className:`-mt-2 max-h-[32vh] overflow-y-auto rounded-md border border-border`,children:t===null?(0,L.jsx)(`div`,{className:`flex justify-center py-6`,children:(0,L.jsx)(Qu,{})}):b.length===0?(0,L.jsxs)(`p`,{className:`px-3 py-6 text-center text-sm text-dim`,children:[`No secrets`,d?` match`:``,`.`]}):b.map((e,t)=>{let n=l.has(e.id),r=Iu[e.type];return(0,L.jsxs)(`button`,{type:`button`,role:`option`,"aria-selected":n,onClick:()=>{x(e.id),g(null)},onMouseEnter:()=>m(t),className:G(`flex w-full cursor-pointer items-center gap-3 border-b border-border px-3 py-2 text-left last:border-b-0`,t===p&&`bg-selection`),children:[(0,L.jsx)(`span`,{className:G(`flex size-4 items-center justify-center rounded border`,n?`border-accent bg-accent text-on-accent`:`border-border`),children:n?(0,L.jsx)(wd,{className:`size-3`}):null}),(0,L.jsx)(`span`,{className:G(`w-3 text-center text-xs`,r.color),children:r.glyph}),(0,L.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-sm text-text`,children:e.name}),e.linkCount>0?(0,L.jsxs)(`span`,{className:`text-xs text-dim`,children:[`+`,e.linkCount,` linked`]}):null]},e.id)})}),(0,L.jsxs)(`label`,{className:`flex items-center gap-3 text-sm text-text`,children:[(0,L.jsx)(Up,{checked:s,onCheckedChange:c,"aria-label":`Include linked secrets`}),`Include linked secrets`]}),h&&!h.field?(0,L.jsxs)(`p`,{role:`alert`,className:`rounded-md bg-danger-bg px-3 py-2 text-sm text-danger`,children:[`\u2717 `,h.message]}):null,(0,L.jsx)(Pp,{className:`mt-1`,children:(0,L.jsxs)(Q,{type:`submit`,variant:`primary`,disabled:v||t===null,children:[v?(0,L.jsx)(Qu,{className:`border-on-accent/30 border-t-on-accent`}):null,`Create lease`]})})]})})}var nm=o(((e,t)=>{t.exports=function(){return typeof Promise==`function`&&Promise.prototype&&Promise.prototype.then}})),rm=o((e=>{var t,n=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];e.getSymbolSize=function(e){if(!e)throw Error(`"version" cannot be null or undefined`);if(e<1||e>40)throw Error(`"version" should be in range from 1 to 40`);return e*4+17},e.getSymbolTotalCodewords=function(e){return n[e]},e.getBCHDigit=function(e){let t=0;for(;e!==0;)t++,e>>>=1;return t},e.setToSJISFunction=function(e){if(typeof e!=`function`)throw Error(`"toSJISFunc" is not a valid function.`);t=e},e.isKanjiModeEnabled=function(){return t!==void 0},e.toSJIS=function(e){return t(e)}})),im=o((e=>{e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2};function t(t){if(typeof t!=`string`)throw Error(`Param is not a string`);switch(t.toLowerCase()){case`l`:case`low`:return e.L;case`m`:case`medium`:return e.M;case`q`:case`quartile`:return e.Q;case`h`:case`high`:return e.H;default:throw Error(`Unknown EC Level: `+t)}}e.isValid=function(e){return e&&e.bit!==void 0&&e.bit>=0&&e.bit<4},e.from=function(n,r){if(e.isValid(n))return n;try{return t(n)}catch{return r}}})),am=o(((e,t)=>{function n(){this.buffer=[],this.length=0}n.prototype={get:function(e){let t=Math.floor(e/8);return(this.buffer[t]>>>7-e%8&1)==1},put:function(e,t){for(let n=0;n<t;n++)this.putBit((e>>>t-n-1&1)==1)},getLengthInBits:function(){return this.length},putBit:function(e){let t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}},t.exports=n})),om=o(((e,t)=>{function n(e){if(!e||e<1)throw Error(`BitMatrix size must be defined and greater than 0`);this.size=e,this.data=new Uint8Array(e*e),this.reservedBit=new Uint8Array(e*e)}n.prototype.set=function(e,t,n,r){let i=e*this.size+t;this.data[i]=n,r&&(this.reservedBit[i]=!0)},n.prototype.get=function(e,t){return this.data[e*this.size+t]},n.prototype.xor=function(e,t,n){this.data[e*this.size+t]^=n},n.prototype.isReserved=function(e,t){return this.reservedBit[e*this.size+t]},t.exports=n})),sm=o((e=>{var t=rm().getSymbolSize;e.getRowColCoords=function(e){if(e===1)return[];let n=Math.floor(e/7)+2,r=t(e),i=r===145?26:Math.ceil((r-13)/(2*n-2))*2,a=[r-7];for(let e=1;e<n-1;e++)a[e]=a[e-1]-i;return a.push(6),a.reverse()},e.getPositions=function(t){let n=[],r=e.getRowColCoords(t),i=r.length;for(let e=0;e<i;e++)for(let t=0;t<i;t++)e===0&&t===0||e===0&&t===i-1||e===i-1&&t===0||n.push([r[e],r[t]]);return n}})),cm=o((e=>{var t=rm().getSymbolSize,n=7;e.getPositions=function(e){let r=t(e);return[[0,0],[r-n,0],[0,r-n]]}})),lm=o((e=>{e.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};var t={N1:3,N2:3,N3:40,N4:10};e.isValid=function(e){return e!=null&&e!==``&&!isNaN(e)&&e>=0&&e<=7},e.from=function(t){return e.isValid(t)?parseInt(t,10):void 0},e.getPenaltyN1=function(e){let n=e.size,r=0,i=0,a=0,o=null,s=null;for(let c=0;c<n;c++){i=a=0,o=s=null;for(let l=0;l<n;l++){let n=e.get(c,l);n===o?i++:(i>=5&&(r+=t.N1+(i-5)),o=n,i=1),n=e.get(l,c),n===s?a++:(a>=5&&(r+=t.N1+(a-5)),s=n,a=1)}i>=5&&(r+=t.N1+(i-5)),a>=5&&(r+=t.N1+(a-5))}return r},e.getPenaltyN2=function(e){let n=e.size,r=0;for(let t=0;t<n-1;t++)for(let i=0;i<n-1;i++){let n=e.get(t,i)+e.get(t,i+1)+e.get(t+1,i)+e.get(t+1,i+1);(n===4||n===0)&&r++}return r*t.N2},e.getPenaltyN3=function(e){let n=e.size,r=0,i=0,a=0;for(let t=0;t<n;t++){i=a=0;for(let o=0;o<n;o++)i=i<<1&2047|e.get(t,o),o>=10&&(i===1488||i===93)&&r++,a=a<<1&2047|e.get(o,t),o>=10&&(a===1488||a===93)&&r++}return r*t.N3},e.getPenaltyN4=function(e){let n=0,r=e.data.length;for(let t=0;t<r;t++)n+=e.data[t];return Math.abs(Math.ceil(n*100/r/5)-10)*t.N4};function n(t,n,r){switch(t){case e.Patterns.PATTERN000:return(n+r)%2==0;case e.Patterns.PATTERN001:return n%2==0;case e.Patterns.PATTERN010:return r%3==0;case e.Patterns.PATTERN011:return(n+r)%3==0;case e.Patterns.PATTERN100:return(Math.floor(n/2)+Math.floor(r/3))%2==0;case e.Patterns.PATTERN101:return n*r%2+n*r%3==0;case e.Patterns.PATTERN110:return(n*r%2+n*r%3)%2==0;case e.Patterns.PATTERN111:return(n*r%3+(n+r)%2)%2==0;default:throw Error(`bad maskPattern:`+t)}}e.applyMask=function(e,t){let r=t.size;for(let i=0;i<r;i++)for(let a=0;a<r;a++)t.isReserved(a,i)||t.xor(a,i,n(e,a,i))},e.getBestMask=function(t,n){let r=Object.keys(e.Patterns).length,i=0,a=1/0;for(let o=0;o<r;o++){n(o),e.applyMask(o,t);let r=e.getPenaltyN1(t)+e.getPenaltyN2(t)+e.getPenaltyN3(t)+e.getPenaltyN4(t);e.applyMask(o,t),r<a&&(a=r,i=o)}return i}})),um=o((e=>{var t=im(),n=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],r=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];e.getBlocksCount=function(e,r){switch(r){case t.L:return n[(e-1)*4+0];case t.M:return n[(e-1)*4+1];case t.Q:return n[(e-1)*4+2];case t.H:return n[(e-1)*4+3];default:return}},e.getTotalCodewordsCount=function(e,n){switch(n){case t.L:return r[(e-1)*4+0];case t.M:return r[(e-1)*4+1];case t.Q:return r[(e-1)*4+2];case t.H:return r[(e-1)*4+3];default:return}}})),dm=o((e=>{var t=new Uint8Array(512),n=new Uint8Array(256);(function(){let e=1;for(let r=0;r<255;r++)t[r]=e,n[e]=r,e<<=1,e&256&&(e^=285);for(let e=255;e<512;e++)t[e]=t[e-255]})(),e.log=function(e){if(e<1)throw Error(`log(`+e+`)`);return n[e]},e.exp=function(e){return t[e]},e.mul=function(e,r){return e===0||r===0?0:t[n[e]+n[r]]}})),fm=o((e=>{var t=dm();e.mul=function(e,n){let r=new Uint8Array(e.length+n.length-1);for(let i=0;i<e.length;i++)for(let a=0;a<n.length;a++)r[i+a]^=t.mul(e[i],n[a]);return r},e.mod=function(e,n){let r=new Uint8Array(e);for(;r.length-n.length>=0;){let e=r[0];for(let i=0;i<n.length;i++)r[i]^=t.mul(n[i],e);let i=0;for(;i<r.length&&r[i]===0;)i++;r=r.slice(i)}return r},e.generateECPolynomial=function(n){let r=new Uint8Array([1]);for(let i=0;i<n;i++)r=e.mul(r,new Uint8Array([1,t.exp(i)]));return r}})),pm=o(((e,t)=>{var n=fm();function r(e){this.genPoly=void 0,this.degree=e,this.degree&&this.initialize(this.degree)}r.prototype.initialize=function(e){this.degree=e,this.genPoly=n.generateECPolynomial(this.degree)},r.prototype.encode=function(e){if(!this.genPoly)throw Error(`Encoder not initialized`);let t=new Uint8Array(e.length+this.degree);t.set(e);let r=n.mod(t,this.genPoly),i=this.degree-r.length;if(i>0){let e=new Uint8Array(this.degree);return e.set(r,i),e}return r},t.exports=r})),mm=o((e=>{e.isValid=function(e){return!isNaN(e)&&e>=1&&e<=40}})),hm=o((e=>{var t=`[0-9]+`,n=`[A-Z $%*+\\\\-./:]+`,r=`(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+`;r=r.replace(/u/g,`\\\\u`);var i=`(?:(?![A-Z0-9 $%*+\\\\-./:]|`+r+`)(?:.|[\\r\n]))+`;e.KANJI=new RegExp(r,`g`),e.BYTE_KANJI=RegExp(`[^A-Z0-9 $%*+\\\\-./:]+`,`g`),e.BYTE=new RegExp(i,`g`),e.NUMERIC=new RegExp(t,`g`),e.ALPHANUMERIC=new RegExp(n,`g`);var a=RegExp(`^`+r+`$`),o=RegExp(`^[0-9]+$`),s=RegExp(`^[A-Z0-9 $%*+\\\\-./:]+$`);e.testKanji=function(e){return a.test(e)},e.testNumeric=function(e){return o.test(e)},e.testAlphanumeric=function(e){return s.test(e)}})),gm=o((e=>{var t=mm(),n=hm();e.NUMERIC={id:`Numeric`,bit:1,ccBits:[10,12,14]},e.ALPHANUMERIC={id:`Alphanumeric`,bit:2,ccBits:[9,11,13]},e.BYTE={id:`Byte`,bit:4,ccBits:[8,16,16]},e.KANJI={id:`Kanji`,bit:8,ccBits:[8,10,12]},e.MIXED={bit:-1},e.getCharCountIndicator=function(e,n){if(!e.ccBits)throw Error(`Invalid mode: `+e);if(!t.isValid(n))throw Error(`Invalid version: `+n);return n>=1&&n<10?e.ccBits[0]:n<27?e.ccBits[1]:e.ccBits[2]},e.getBestModeForData=function(t){return n.testNumeric(t)?e.NUMERIC:n.testAlphanumeric(t)?e.ALPHANUMERIC:n.testKanji(t)?e.KANJI:e.BYTE},e.toString=function(e){if(e&&e.id)return e.id;throw Error(`Invalid mode`)},e.isValid=function(e){return e&&e.bit&&e.ccBits};function r(t){if(typeof t!=`string`)throw Error(`Param is not a string`);switch(t.toLowerCase()){case`numeric`:return e.NUMERIC;case`alphanumeric`:return e.ALPHANUMERIC;case`kanji`:return e.KANJI;case`byte`:return e.BYTE;default:throw Error(`Unknown mode: `+t)}}e.from=function(t,n){if(e.isValid(t))return t;try{return r(t)}catch{return n}}})),_m=o((e=>{var t=rm(),n=um(),r=im(),i=gm(),a=mm(),o=7973,s=t.getBCHDigit(o);function c(t,n,r){for(let i=1;i<=40;i++)if(n<=e.getCapacity(i,r,t))return i}function l(e,t){return i.getCharCountIndicator(e,t)+4}function u(e,t){let n=0;return e.forEach(function(e){let r=l(e.mode,t);n+=r+e.getBitsLength()}),n}function d(t,n){for(let r=1;r<=40;r++)if(u(t,r)<=e.getCapacity(r,n,i.MIXED))return r}e.from=function(e,t){return a.isValid(e)?parseInt(e,10):t},e.getCapacity=function(e,r,o){if(!a.isValid(e))throw Error(`Invalid QR Code version`);o===void 0&&(o=i.BYTE);let s=(t.getSymbolTotalCodewords(e)-n.getTotalCodewordsCount(e,r))*8;if(o===i.MIXED)return s;let c=s-l(o,e);switch(o){case i.NUMERIC:return Math.floor(c/10*3);case i.ALPHANUMERIC:return Math.floor(c/11*2);case i.KANJI:return Math.floor(c/13);case i.BYTE:default:return Math.floor(c/8)}},e.getBestVersionForData=function(e,t){let n,i=r.from(t,r.M);if(Array.isArray(e)){if(e.length>1)return d(e,i);if(e.length===0)return 1;n=e[0]}else n=e;return c(n.mode,n.getLength(),i)},e.getEncodedBits=function(e){if(!a.isValid(e)||e<7)throw Error(`Invalid QR Code version`);let n=e<<12;for(;t.getBCHDigit(n)-s>=0;)n^=o<<t.getBCHDigit(n)-s;return e<<12|n}})),vm=o((e=>{var t=rm(),n=1335,r=21522,i=t.getBCHDigit(n);e.getEncodedBits=function(e,a){let o=e.bit<<3|a,s=o<<10;for(;t.getBCHDigit(s)-i>=0;)s^=n<<t.getBCHDigit(s)-i;return(o<<10|s)^r}})),ym=o(((e,t)=>{var n=gm();function r(e){this.mode=n.NUMERIC,this.data=e.toString()}r.getBitsLength=function(e){return 10*Math.floor(e/3)+(e%3?e%3*3+1:0)},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(e){let t,n,r;for(t=0;t+3<=this.data.length;t+=3)n=this.data.substr(t,3),r=parseInt(n,10),e.put(r,10);let i=this.data.length-t;i>0&&(n=this.data.substr(t),r=parseInt(n,10),e.put(r,i*3+1))},t.exports=r})),bm=o(((e,t)=>{var n=gm(),r=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:`.split(``);function i(e){this.mode=n.ALPHANUMERIC,this.data=e}i.getBitsLength=function(e){return 11*Math.floor(e/2)+e%2*6},i.prototype.getLength=function(){return this.data.length},i.prototype.getBitsLength=function(){return i.getBitsLength(this.data.length)},i.prototype.write=function(e){let t=0;for(;t+2<=this.data.length;t+=2){let n=r.indexOf(this.data[t])*45;n+=r.indexOf(this.data[t+1]),e.put(n,11)}this.data.length%2&&e.put(r.indexOf(this.data[t]),6)},t.exports=i})),xm=o(((e,t)=>{var n=gm();function r(e){this.mode=n.BYTE,this.data=typeof e==`string`?new TextEncoder().encode(e):new Uint8Array(e)}r.getBitsLength=function(e){return e*8},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(e){for(let t=0,n=this.data.length;t<n;t++)e.put(this.data[t],8)},t.exports=r})),Sm=o(((e,t)=>{var n=gm(),r=rm();function i(e){this.mode=n.KANJI,this.data=e}i.getBitsLength=function(e){return e*13},i.prototype.getLength=function(){return this.data.length},i.prototype.getBitsLength=function(){return i.getBitsLength(this.data.length)},i.prototype.write=function(e){let t=0;for(;t<this.data.length;t++){let n=r.toSJIS(this.data[t]);if(n>=33088&&n<=40956)n-=33088;else if(n>=57408&&n<=60351)n-=49472;else throw Error(`Invalid SJIS character: `+this.data[t]+`\nMake sure your charset is UTF-8`);n=(n>>>8&255)*192+(n&255),e.put(n,13)}},t.exports=i})),Cm=o(((e,t)=>{var n={single_source_shortest_paths:function(e,t,r){var i={},a={};a[t]=0;var o=n.PriorityQueue.make();o.push(t,0);for(var s,c,l,u,d,f,p,m,h;!o.empty();)for(l in s=o.pop(),c=s.value,u=s.cost,d=e[c]||{},d)d.hasOwnProperty(l)&&(f=d[l],p=u+f,m=a[l],h=a[l]===void 0,(h||m>p)&&(a[l]=p,o.push(l,p),i[l]=c));if(r!==void 0&&a[r]===void 0){var g=[`Could not find a path from `,t,` to `,r,`.`].join(``);throw Error(g)}return i},extract_shortest_path_from_predecessor_list:function(e,t){for(var n=[],r=t;r;)n.push(r),e[r],r=e[r];return n.reverse(),n},find_path:function(e,t,r){var i=n.single_source_shortest_paths(e,t,r);return n.extract_shortest_path_from_predecessor_list(i,r)},PriorityQueue:{make:function(e){var t=n.PriorityQueue,r={},i;for(i in e||={},t)t.hasOwnProperty(i)&&(r[i]=t[i]);return r.queue=[],r.sorter=e.sorter||t.default_sorter,r},default_sorter:function(e,t){return e.cost-t.cost},push:function(e,t){var n={value:e,cost:t};this.queue.push(n),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return this.queue.length===0}}};t!==void 0&&(t.exports=n)})),wm=o((e=>{var t=gm(),n=ym(),r=bm(),i=xm(),a=Sm(),o=hm(),s=rm(),c=Cm();function l(e){return unescape(encodeURIComponent(e)).length}function u(e,t,n){let r=[],i;for(;(i=e.exec(n))!==null;)r.push({data:i[0],index:i.index,mode:t,length:i[0].length});return r}function d(e){let n=u(o.NUMERIC,t.NUMERIC,e),r=u(o.ALPHANUMERIC,t.ALPHANUMERIC,e),i,a;return s.isKanjiModeEnabled()?(i=u(o.BYTE,t.BYTE,e),a=u(o.KANJI,t.KANJI,e)):(i=u(o.BYTE_KANJI,t.BYTE,e),a=[]),n.concat(r,i,a).sort(function(e,t){return e.index-t.index}).map(function(e){return{data:e.data,mode:e.mode,length:e.length}})}function f(e,o){switch(o){case t.NUMERIC:return n.getBitsLength(e);case t.ALPHANUMERIC:return r.getBitsLength(e);case t.KANJI:return a.getBitsLength(e);case t.BYTE:return i.getBitsLength(e)}}function p(e){return e.reduce(function(e,t){let n=e.length-1>=0?e[e.length-1]:null;return n&&n.mode===t.mode?(e[e.length-1].data+=t.data,e):(e.push(t),e)},[])}function m(e){let n=[];for(let r=0;r<e.length;r++){let i=e[r];switch(i.mode){case t.NUMERIC:n.push([i,{data:i.data,mode:t.ALPHANUMERIC,length:i.length},{data:i.data,mode:t.BYTE,length:i.length}]);break;case t.ALPHANUMERIC:n.push([i,{data:i.data,mode:t.BYTE,length:i.length}]);break;case t.KANJI:n.push([i,{data:i.data,mode:t.BYTE,length:l(i.data)}]);break;case t.BYTE:n.push([{data:i.data,mode:t.BYTE,length:l(i.data)}])}}return n}function h(e,n){let r={},i={start:{}},a=[`start`];for(let o=0;o<e.length;o++){let s=e[o],c=[];for(let e=0;e<s.length;e++){let l=s[e],u=``+o+e;c.push(u),r[u]={node:l,lastCount:0},i[u]={};for(let e=0;e<a.length;e++){let o=a[e];r[o]&&r[o].node.mode===l.mode?(i[o][u]=f(r[o].lastCount+l.length,l.mode)-f(r[o].lastCount,l.mode),r[o].lastCount+=l.length):(r[o]&&(r[o].lastCount=l.length),i[o][u]=f(l.length,l.mode)+4+t.getCharCountIndicator(l.mode,n))}}a=c}for(let e=0;e<a.length;e++)i[a[e]].end=0;return{map:i,table:r}}function g(e,o){let c,l=t.getBestModeForData(e);if(c=t.from(o,l),c!==t.BYTE&&c.bit<l.bit)throw Error(`"`+e+`" cannot be encoded with mode `+t.toString(c)+`.\n Suggested mode is: `+t.toString(l));switch(c===t.KANJI&&!s.isKanjiModeEnabled()&&(c=t.BYTE),c){case t.NUMERIC:return new n(e);case t.ALPHANUMERIC:return new r(e);case t.KANJI:return new a(e);case t.BYTE:return new i(e)}}e.fromArray=function(e){return e.reduce(function(e,t){return typeof t==`string`?e.push(g(t,null)):t.data&&e.push(g(t.data,t.mode)),e},[])},e.fromString=function(t,n){let r=h(m(d(t,s.isKanjiModeEnabled())),n),i=c.find_path(r.map,`start`,`end`),a=[];for(let e=1;e<i.length-1;e++)a.push(r.table[i[e]].node);return e.fromArray(p(a))},e.rawSplit=function(t){return e.fromArray(d(t,s.isKanjiModeEnabled()))}})),Tm=o((e=>{var t=rm(),n=im(),r=am(),i=om(),a=sm(),o=cm(),s=lm(),c=um(),l=pm(),u=_m(),d=vm(),f=gm(),p=wm();function m(e,t){let n=e.size,r=o.getPositions(t);for(let t=0;t<r.length;t++){let i=r[t][0],a=r[t][1];for(let t=-1;t<=7;t++)if(!(i+t<=-1||n<=i+t))for(let r=-1;r<=7;r++)a+r<=-1||n<=a+r||(t>=0&&t<=6&&(r===0||r===6)||r>=0&&r<=6&&(t===0||t===6)||t>=2&&t<=4&&r>=2&&r<=4?e.set(i+t,a+r,!0,!0):e.set(i+t,a+r,!1,!0))}}function h(e){let t=e.size;for(let n=8;n<t-8;n++){let t=n%2==0;e.set(n,6,t,!0),e.set(6,n,t,!0)}}function g(e,t){let n=a.getPositions(t);for(let t=0;t<n.length;t++){let r=n[t][0],i=n[t][1];for(let t=-2;t<=2;t++)for(let n=-2;n<=2;n++)t===-2||t===2||n===-2||n===2||t===0&&n===0?e.set(r+t,i+n,!0,!0):e.set(r+t,i+n,!1,!0)}}function _(e,t){let n=e.size,r=u.getEncodedBits(t),i,a,o;for(let t=0;t<18;t++)i=Math.floor(t/3),a=t%3+n-8-3,o=(r>>t&1)==1,e.set(i,a,o,!0),e.set(a,i,o,!0)}function v(e,t,n){let r=e.size,i=d.getEncodedBits(t,n),a,o;for(a=0;a<15;a++)o=(i>>a&1)==1,a<6?e.set(a,8,o,!0):a<8?e.set(a+1,8,o,!0):e.set(r-15+a,8,o,!0),a<8?e.set(8,r-a-1,o,!0):a<9?e.set(8,15-a-1+1,o,!0):e.set(8,15-a-1,o,!0);e.set(r-8,8,1,!0)}function y(e,t){let n=e.size,r=-1,i=n-1,a=7,o=0;for(let s=n-1;s>0;s-=2)for(s===6&&s--;;){for(let n=0;n<2;n++)if(!e.isReserved(i,s-n)){let r=!1;o<t.length&&(r=(t[o]>>>a&1)==1),e.set(i,s-n,r),a--,a===-1&&(o++,a=7)}if(i+=r,i<0||n<=i){i-=r,r=-r;break}}}function b(e,n,i){let a=new r;i.forEach(function(t){a.put(t.mode.bit,4),a.put(t.getLength(),f.getCharCountIndicator(t.mode,e)),t.write(a)});let o=(t.getSymbolTotalCodewords(e)-c.getTotalCodewordsCount(e,n))*8;for(a.getLengthInBits()+4<=o&&a.put(0,4);a.getLengthInBits()%8!=0;)a.putBit(0);let s=(o-a.getLengthInBits())/8;for(let e=0;e<s;e++)a.put(e%2?17:236,8);return x(a,e,n)}function x(e,n,r){let i=t.getSymbolTotalCodewords(n),a=i-c.getTotalCodewordsCount(n,r),o=c.getBlocksCount(n,r),s=o-i%o,u=Math.floor(i/o),d=Math.floor(a/o),f=d+1,p=u-d,m=new l(p),h=0,g=Array(o),_=Array(o),v=0,y=new Uint8Array(e.buffer);for(let e=0;e<o;e++){let t=e<s?d:f;g[e]=y.slice(h,h+t),_[e]=m.encode(g[e]),h+=t,v=Math.max(v,t)}let b=new Uint8Array(i),x=0,S,C;for(S=0;S<v;S++)for(C=0;C<o;C++)S<g[C].length&&(b[x++]=g[C][S]);for(S=0;S<p;S++)for(C=0;C<o;C++)b[x++]=_[C][S];return b}function S(e,n,r,a){let o;if(Array.isArray(e))o=p.fromArray(e);else if(typeof e==`string`){let t=n;if(!t){let n=p.rawSplit(e);t=u.getBestVersionForData(n,r)}o=p.fromString(e,t||40)}else throw Error(`Invalid data`);let c=u.getBestVersionForData(o,r);if(!c)throw Error(`The amount of data is too big to be stored in a QR Code`);if(!n)n=c;else if(n<c)throw Error(`\nThe chosen QR Code version cannot contain this amount of data.\nMinimum version required to store current data is: `+c+`.\n`);let l=b(n,r,o),d=new i(t.getSymbolSize(n));return m(d,n),h(d),g(d,n),v(d,r,0),n>=7&&_(d,n),y(d,l),isNaN(a)&&(a=s.getBestMask(d,v.bind(null,d,r))),s.applyMask(a,d),v(d,r,a),{modules:d,version:n,errorCorrectionLevel:r,maskPattern:a,segments:o}}e.create=function(e,r){if(e===void 0||e===``)throw Error(`No input text`);let i=n.M,a,o;return r!==void 0&&(i=n.from(r.errorCorrectionLevel,n.M),a=u.from(r.version),o=s.from(r.maskPattern),r.toSJISFunc&&t.setToSJISFunction(r.toSJISFunc)),S(e,a,i,o)}})),Em=o((e=>{function t(e){if(typeof e==`number`&&(e=e.toString()),typeof e!=`string`)throw Error(`Color should be defined as hex string`);let t=e.slice().replace(`#`,``).split(``);if(t.length<3||t.length===5||t.length>8)throw Error(`Invalid hex color: `+e);(t.length===3||t.length===4)&&(t=Array.prototype.concat.apply([],t.map(function(e){return[e,e]}))),t.length===6&&t.push(`F`,`F`);let n=parseInt(t.join(``),16);return{r:n>>24&255,g:n>>16&255,b:n>>8&255,a:n&255,hex:`#`+t.slice(0,6).join(``)}}e.getOptions=function(e){e||={},e.color||(e.color={});let n=e.margin===void 0||e.margin===null||e.margin<0?4:e.margin,r=e.width&&e.width>=21?e.width:void 0,i=e.scale||4;return{width:r,scale:r?4:i,margin:n,color:{dark:t(e.color.dark||`#000000ff`),light:t(e.color.light||`#ffffffff`)},type:e.type,rendererOpts:e.rendererOpts||{}}},e.getScale=function(e,t){return t.width&&t.width>=e+t.margin*2?t.width/(e+t.margin*2):t.scale},e.getImageWidth=function(t,n){let r=e.getScale(t,n);return Math.floor((t+n.margin*2)*r)},e.qrToImageData=function(t,n,r){let i=n.modules.size,a=n.modules.data,o=e.getScale(i,r),s=Math.floor((i+r.margin*2)*o),c=r.margin*o,l=[r.color.light,r.color.dark];for(let e=0;e<s;e++)for(let n=0;n<s;n++){let u=(e*s+n)*4,d=r.color.light;if(e>=c&&n>=c&&e<s-c&&n<s-c){let t=Math.floor((e-c)/o),r=Math.floor((n-c)/o);d=l[+!!a[t*i+r]]}t[u++]=d.r,t[u++]=d.g,t[u++]=d.b,t[u]=d.a}}})),Dm=o((e=>{var t=Em();function n(e,t,n){e.clearRect(0,0,t.width,t.height),t.style||={},t.height=n,t.width=n,t.style.height=n+`px`,t.style.width=n+`px`}function r(){try{return document.createElement(`canvas`)}catch{throw Error(`You need to specify a canvas element`)}}e.render=function(e,i,a){let o=a,s=i;o===void 0&&(!i||!i.getContext)&&(o=i,i=void 0),i||(s=r()),o=t.getOptions(o);let c=t.getImageWidth(e.modules.size,o),l=s.getContext(`2d`),u=l.createImageData(c,c);return t.qrToImageData(u.data,e,o),n(l,s,c),l.putImageData(u,0,0),s},e.renderToDataURL=function(t,n,r){let i=r;i===void 0&&(!n||!n.getContext)&&(i=n,n=void 0),i||={};let a=e.render(t,n,i),o=i.type||`image/png`,s=i.rendererOpts||{};return a.toDataURL(o,s.quality)}})),Om=o((e=>{var t=Em();function n(e,t){let n=e.a/255,r=t+`="`+e.hex+`"`;return n<1?r+` `+t+`-opacity="`+n.toFixed(2).slice(1)+`"`:r}function r(e,t,n){let r=e+t;return n!==void 0&&(r+=` `+n),r}function i(e,t,n){let i=``,a=0,o=!1,s=0;for(let c=0;c<e.length;c++){let l=Math.floor(c%t),u=Math.floor(c/t);!l&&!o&&(o=!0),e[c]?(s++,c>0&&l>0&&e[c-1]||(i+=o?r(`M`,l+n,.5+u+n):r(`m`,a,0),a=0,o=!1),l+1<t&&e[c+1]||(i+=r(`h`,s),s=0)):a++}return i}e.render=function(e,r,a){let o=t.getOptions(r),s=e.modules.size,c=e.modules.data,l=s+o.margin*2,u=o.color.light.a?`<path `+n(o.color.light,`fill`)+` d="M0 0h`+l+`v`+l+`H0z"/>`:``,d=`<path `+n(o.color.dark,`stroke`)+` d="`+i(c,s,o.margin)+`"/>`,f=`viewBox="0 0 `+l+` `+l+`"`,p=`<svg xmlns="http://www.w3.org/2000/svg" `+(o.width?`width="`+o.width+`" height="`+o.width+`" `:``)+f+` shape-rendering="crispEdges">`+u+d+`</svg>\n`;return typeof a==`function`&&a(null,p),p}})),km=c(o((e=>{var t=nm(),n=Tm(),r=Dm(),i=Om();function a(e,r,i,a,o){let s=[].slice.call(arguments,1),c=s.length,l=typeof s[c-1]==`function`;if(!l&&!t())throw Error(`Callback required as last argument`);if(l){if(c<2)throw Error(`Too few arguments provided`);c===2?(o=i,i=r,r=a=void 0):c===3&&(r.getContext&&o===void 0?(o=a,a=void 0):(o=a,a=i,i=r,r=void 0))}else{if(c<1)throw Error(`Too few arguments provided`);return c===1?(i=r,r=a=void 0):c===2&&!r.getContext&&(a=i,i=r,r=void 0),new Promise(function(t,o){try{t(e(n.create(i,a),r,a))}catch(e){o(e)}})}try{let t=n.create(i,a);o(null,e(t,r,a))}catch(e){o(e)}}e.create=n.create,e.toCanvas=a.bind(null,r.render),e.toDataURL=a.bind(null,r.renderToDataURL),e.toString=a.bind(null,function(e,t,n){return i.render(e,n)})}))(),1),Am=[{id:`storage`,label:`Storage`},{id:`security`,label:`Security`},{id:`behaviour`,label:`Behaviour`},{id:`agents`,label:`Agents & services`},{id:`about`,label:`About`}],jm=[`revealSeconds`,`clipboardClearSeconds`,`idleLockSeconds`,`passwordLength`,`passwordSymbols`,`mouse`],Mm=[`defaultLeaseTtl`,`daemonTtlSeconds`,`webPort`,`webWithTui`];function Nm(){let e=id(),[t,n]=(0,_.useState)(null),[r,i]=(0,_.useState)(`security`),[a,o]=(0,_.useState)(null),{setModalOpen:s}=e,c=(0,_.useCallback)(e=>{n(t=>t&&{...t,security:e})},[]),{withAdmin:l,setAdminUntil:u,adminUntil:d,gate:f}=Bp(c),p=(0,_.useCallback)(async()=>{try{let e=await X.settings();n(e),u(e.security.adminUntil)}catch(e){j.error(Z(e))}},[u]);(0,_.useEffect)(()=>{p()},[p]),(0,_.useEffect)(()=>(s(a!==null),()=>s(!1)),[a,s]);let m=(0,_.useCallback)(async(e,t)=>{try{let n=await e();n&&(c(n),u(n.adminUntil)),t&&j.success(t)}catch(e){if(e instanceof $u&&e.status===403)throw e;j.error(Z(e))}},[c,u]),h=(0,_.useCallback)(async(t,r)=>{try{let i=await X.setPreference(t.key,r);return e.setPrefs(i.prefs),n(e=>e&&{...e,preferences:e.preferences.map(e=>e.key===t.key?{...e,value:r??e.default,display:i.display,source:i.source}:e)}),i.source===`env`?j(`Saved \u2014 ${t.env} still overrides it for now`):j.success(`${t.label}: ${i.display}`),!0}catch(e){return e instanceof $u&&e.status===403&&u(null),j.error(Z(e)),!1}},[e,u]);if((0,_.useEffect)(()=>{let t=t=>{if(t.defaultPrevented||e.paletteOpen||e.modalOpen||t.ctrlKey||t.metaKey||t.altKey||Ju(t.target))return;let n=Am.findIndex(e=>e.id===r);t.key===`ArrowRight`||t.key===`l`||t.key===`]`?(t.preventDefault(),i(Am[(n+1)%Am.length].id)):t.key===`ArrowLeft`||t.key===`h`||t.key===`[`?(t.preventDefault(),i(Am[(n-1+Am.length)%Am.length].id)):t.key===`Escape`&&e.go(`vault`)};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[r,e]),ad((0,_.useMemo)(()=>Am.map(e=>({id:`section:${e.id}`,title:`Settings \xB7 ${e.label}`,group:`Settings`,run:()=>i(e.id)})),[]),(0,_.useMemo)(()=>[[`\u2190\u2192`,`section`],[`tab`,`field`],[`esc`,`back`]],[])),!t)return(0,L.jsx)(Yu,{className:`h-full`,children:(0,L.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,L.jsx)(Qu,{})})});let{security:g,paths:v}=t,y=e=>e.map(e=>t.preferences.find(t=>t.key===e)).filter(e=>e!==void 0).map(e=>{let t=t=>e.guarded?l(t):t();return(0,L.jsx)(Lm,{pref:e,onEdit:()=>t(()=>o({kind:`number`,pref:e})),onToggle:n=>t(()=>void h(e,n)),onReset:()=>t(()=>void h(e,null))},e.key)}),b=(e,t,n,r)=>o({kind:`confirm`,title:e,action:t,run:n,body:r});return(0,L.jsxs)(`div`,{className:`grid h-full min-h-0 grid-cols-1 gap-3 md:grid-cols-[13rem_1fr] sm:gap-4`,children:[(0,L.jsx)(`nav`,{className:`flex gap-1 overflow-x-auto md:flex-col`,"aria-label":`Settings sections`,children:Am.map(e=>(0,L.jsx)(`button`,{type:`button`,onClick:()=>i(e.id),"aria-current":r===e.id?`page`:void 0,className:G(`shrink-0 cursor-pointer rounded-md border-l-2 px-3 py-2 text-left text-sm transition-colors`,r===e.id?`border-accent bg-selection text-accent`:`border-transparent text-muted hover:bg-selection/50 hover:text-text`),children:e.label},e.id))}),(0,L.jsx)(Yu,{title:Am.find(e=>e.id===r).label,actions:r===`security`&&d&&d>Date.now()?(0,L.jsxs)(Q,{variant:`ghost`,size:`sm`,onClick:()=>void m(()=>X.release().then(e=>(u(null),e)),`Confirmation dropped`),children:[(0,L.jsx)(`span`,{className:`text-success`,children:`\u25CF`}),` confirmed \xB7 end now`]}):void 0,bodyClassName:`overflow-y-auto`,children:(0,L.jsxs)(`div`,{className:`divide-y divide-border`,children:[r===`storage`?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(Fm,{label:`Vault file`,path:v.vault,help:`The vault this session has open`}),(0,L.jsx)(Pm,{label:`Vault folder`,value:(0,L.jsxs)(`span`,{className:`break-all font-mono text-xs`,children:[v.home,` `,(0,L.jsxs)(`span`,{className:`text-dim`,children:[`\xB7 `,v.envHome?`AUTHO_HOME`:v.vaultDir?`config`:`default`]})]}),help:v.envHome?`AUTHO_HOME is set, so it decides the folder \u2014 unset it to change this here`:`Where vault.db, project.json and daemon.json live. Files are not moved; restart autho after changing it`,action:v.envHome?void 0:(0,L.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:()=>l(()=>o({kind:`vaultDir`})),children:`Change`})}),(0,L.jsx)(Fm,{label:`Config file`,path:v.config,help:`Settings on this page are saved here`}),(0,L.jsx)(Fm,{label:`Project file`,path:v.project,help:"Default env mappings for `env`, `exec` and the daemon"}),(0,L.jsx)(Fm,{label:`Daemon state`,path:v.daemon,help:"Port and token of a running `autho daemon serve`"})]}):null,r===`security`?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(Pm,{label:`Master password`,value:(0,L.jsx)(`span`,{className:`font-mono text-muted`,children:`\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022`}),help:`Re-wraps the vault key under a new password; secrets are not re-encrypted`,action:(0,L.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:()=>l(()=>o({kind:`password`})),children:`Change`})}),(0,L.jsx)(Pm,{label:`Remember password`,value:(0,L.jsx)(Im,{on:g.keychain,unavailable:!g.osStore}),help:g.osStore?`Keep the master password in the OS keychain so this device unlocks without typing it`:`The OS secret store is off (AUTHO_DISABLE_OS_SECRETS)`,action:g.osStore?(0,L.jsx)(Up,{checked:g.keychain,"aria-label":`Remember password`,onCheckedChange:e=>e?l(e=>{if(e&&!e.adminHasPassword)j.error(`Confirm with your master password (not a passkey) to save it in the keychain`);else return m(()=>X.saveKeychain(),`Password saved to the keychain`)}):void m(()=>X.forgetKeychain(),`Password removed from the keychain`)}):void 0}),(0,L.jsx)(Pm,{label:`PIN`,value:g.osStore?(0,L.jsx)(Im,{on:g.pin,onLabel:`set`}):(0,L.jsx)(Im,{on:!1,unavailable:!0}),help:g.osStore?`A short PIN asked before the keychain password is used on this device`:`The OS secret store is off (AUTHO_DISABLE_OS_SECRETS)`,action:g.osStore?(0,L.jsxs)(`div`,{className:`flex gap-1.5`,children:[g.pin?(0,L.jsx)(Q,{size:`sm`,variant:`ghost`,onClick:()=>l(()=>b(`Remove the PIN?`,`Remove`,()=>m(()=>X.removePin(),`PIN removed`))),children:`Remove`}):null,(0,L.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:()=>l(()=>o({kind:`pin`})),children:g.pin?`Change`:`Set`})]}):void 0}),(0,L.jsx)(Pm,{label:`Two-factor code`,value:(0,L.jsx)(Im,{on:g.totp}),help:`Ask for an authenticator app code at every unlock`,action:(0,L.jsx)(Up,{checked:g.totp,"aria-label":`Two-factor code`,onCheckedChange:e=>l(async()=>{if(e){let e=await X.totpSetup();o({kind:`totp`,...e})}else b(`Turn off two-factor codes?`,`Turn off`,()=>m(()=>X.totpDisable(),`Two-factor codes turned off`))})})}),(0,L.jsx)(Pm,{label:`Passkeys`,value:g.passkeys.length?`${g.passkeys.length} registered`:(0,L.jsx)(`span`,{className:`text-muted`,children:`none`}),help:`Unlock with a passkey or hardware security key instead of the password`,action:(0,L.jsxs)(Q,{size:`sm`,variant:`secondary`,onClick:()=>l(()=>o({kind:`passkey`})),children:[(0,L.jsx)(Hd,{}),`Add`]}),children:g.passkeys.length?(0,L.jsx)(`ul`,{className:`mt-3 flex flex-col gap-1.5`,children:g.passkeys.map(e=>(0,L.jsxs)(`li`,{className:`flex items-center gap-3 rounded-md border border-border bg-panel-alt px-3 py-2`,children:[(0,L.jsx)(Hd,{className:`size-4 text-accent`}),(0,L.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-sm text-text`,children:e.label}),(0,L.jsxs)(`span`,{className:`text-xs text-dim`,children:[`added `,Uu(e.createdAt)]}),(0,L.jsx)(Q,{size:`sm`,variant:`ghost`,className:`hover:text-danger`,onClick:()=>l(()=>b(`Remove passkey "${e.label}"?`,`Remove`,()=>m(()=>X.removePasskey(e.id),`Removed "${e.label}"`))),children:`Remove`})]},e.id))}):null}),(0,L.jsx)(Pm,{label:`Recovery file`,value:g.recoveryAt?(0,L.jsxs)(`span`,{className:`text-success`,children:[`created `,Uu(g.recoveryAt)]}):(0,L.jsx)(`span`,{className:`text-muted`,children:`none`}),help:`A file that unlocks the vault if you forget the password. Making a new one replaces the old one`,action:(0,L.jsxs)(`div`,{className:`flex gap-1.5`,children:[g.recoveryAt?(0,L.jsx)(Q,{size:`sm`,variant:`ghost`,onClick:()=>l(()=>b(`Revoke the recovery file?`,`Revoke`,()=>m(()=>X.revokeRecovery(),`Recovery file revoked`),`The current recovery file stops working.`)),children:`Revoke`}):null,(0,L.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:()=>l(async()=>{let e=async()=>{let{fileContent:e,security:t}=await X.createRecovery();c(t),o({kind:`recovery`,content:e})};g.recoveryAt?b(`Replace the recovery file?`,`Replace`,()=>m(e),`The old recovery file stops working.`):await m(e)}),children:g.recoveryAt?`Replace`:`Create`})]})})]}):null,r===`behaviour`?y(jm):null,r===`agents`?y(Mm):null,r===`about`?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(Pm,{label:`autho`,value:(0,L.jsx)(`span`,{className:`font-mono`,children:t.about.version}),help:`Installed version`}),(0,L.jsx)(Pm,{label:`Runtime`,value:(0,L.jsxs)(`span`,{className:`font-mono`,children:[`Bun `,t.about.bun,` \xB7 `,t.about.platform]})}),(0,L.jsx)(Pm,{label:`OS secret store`,value:g.osStore?`available`:(0,L.jsx)(`span`,{className:`text-dim`,children:`off (AUTHO_DISABLE_OS_SECRETS)`}),help:`Used for the remembered password and the PIN`}),(0,L.jsx)(Pm,{label:`Web UI`,value:(0,L.jsx)(`span`,{className:`font-mono`,children:location.origin}),help:`Local only: bound to loopback, same-origin requests only, locks when idle`})]}):null]})}),(0,L.jsxs)(Mp,{open:a!==null,onOpenChange:e=>!e&&o(null),children:[a?.kind===`number`?(0,L.jsx)(Rm,{pref:a.pref,onSave:async e=>{await h(a.pref,e)&&o(null)}}):null,a?.kind===`vaultDir`?(0,L.jsx)(zm,{current:v.vaultDir,onDone:e=>{o(null),n(t=>t&&{...t,paths:{...t.paths,home:e}}),p()}}):null,a?.kind===`password`?(0,L.jsx)(Bm,{title:`New master password`,description:`At least 8 characters. Secrets are not re-encrypted; the vault key is re-wrapped.`,labels:[`New password`,`Repeat it`],type:`password`,autoComplete:`new-password`,mismatch:`The passwords do not match`,submit:`Change password`,onSubmit:e=>m(()=>X.changePassword(e),`Master password changed`).then(()=>o(null))}):null,a?.kind===`pin`?(0,L.jsx)(Bm,{title:`PIN for this device`,description:`4\u201312 digits, asked before the remembered password is used.`,labels:[`PIN`,`Repeat it`],type:`password`,inputMode:`numeric`,pattern:/^\\d{4,12}$/,patternError:`Use 4 to 12 digits`,mismatch:`The PINs do not match`,submit:`Save PIN`,onSubmit:e=>m(()=>X.setPin(e),`PIN saved`).then(()=>o(null))}):null,a?.kind===`totp`?(0,L.jsx)(Vm,{secret:a.secret,uri:a.uri,onEnable:e=>m(()=>X.totpEnable(e),`Two-factor codes turned on`).then(()=>o(null))}):null,a?.kind===`passkey`?(0,L.jsx)(Hm,{onAdded:(e,t)=>{c(e),o(null),j.success(`Added "${t}"`)}}):null,a?.kind===`recovery`?(0,L.jsx)(Um,{content:a.content,vault:e.session.vault.name,onClose:()=>o(null)}):null,a?.kind===`confirm`?(0,L.jsx)(Hp,{title:a.title,body:a.body,action:a.action,onConfirm:async()=>{o(null),await a.run()},onCancel:()=>o(null)}):null]}),f]})}function Pm({label:e,value:t,help:n,action:r,children:i}){return(0,L.jsxs)(`div`,{className:`px-4 py-3.5`,children:[(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-4 gap-y-2`,children:[(0,L.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,L.jsxs)(`div`,{className:`flex flex-wrap items-baseline gap-x-3 gap-y-1`,children:[(0,L.jsx)(`span`,{className:`text-sm font-medium text-text`,children:e}),t===void 0?null:(0,L.jsx)(`span`,{className:`min-w-0 text-sm text-text/90`,children:t})]}),n?(0,L.jsx)(`p`,{className:`mt-1 text-xs text-dim`,children:n}):null]}),r?(0,L.jsx)(`div`,{className:`shrink-0`,children:r}):null]}),i]})}function Fm({label:e,path:t,help:n}){let{copy:r}=id();return(0,L.jsx)(Pm,{label:e,value:(0,L.jsx)(`span`,{className:`break-all font-mono text-xs`,children:t}),help:n,action:(0,L.jsx)(Q,{size:`icon-sm`,variant:`ghost`,onClick:()=>void r(e,t),"aria-label":`Copy ${e}`,children:(0,L.jsx)(Od,{})})})}function Im({on:e,onLabel:t=`on`,unavailable:n}){return n?(0,L.jsx)(`span`,{className:`text-dim`,children:`unavailable`}):(0,L.jsx)(`span`,{className:e?`text-success`:`text-muted`,children:e?t:`off`})}function Lm({pref:e,onEdit:t,onToggle:n,onReset:r}){let i=e.source===`env`?(0,L.jsxs)(`span`,{className:`text-info`,children:[`\xB7 `,e.env]}):e.source==="default"?(0,L.jsx)(`span`,{className:`text-dim`,children:`\xB7 default`}):null;return(0,L.jsx)(Pm,{label:e.label,value:(0,L.jsxs)(`span`,{className:G(`font-mono`,e.source==="default"?`text-muted`:`text-text`),children:[e.display,` `,i]}),help:e.help+(e.source===`env`?` \u2014 set by ${e.env}, which overrides the saved value`:``),action:(0,L.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[e.source===`config`?(0,L.jsx)(Q,{size:`sm`,variant:`ghost`,onClick:r,children:`Reset`}):null,e.kind===`boolean`?(0,L.jsx)(Up,{checked:e.value===!0,onCheckedChange:n,"aria-label":e.label}):(0,L.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:t,children:`Change`})]})})}function Rm({pref:e,onSave:t}){let[n,r]=(0,_.useState)(String(e.value)),[i,a]=(0,_.useState)(``),o=r=>{r.preventDefault();let i=Number(n.trim());if(!/^\\d+$/.test(n.trim())||!Number.isSafeInteger(i))return a(`Enter a whole number`);if(e.min!==void 0&&i<e.min&&!(i===0&&e.zero))return a(`At least ${e.min}${e.zero?` (or 0 for ${e.zero})`:``}`);if(e.max!==void 0&&i>e.max)return a(`At most ${e.max}`);t(i)},s=[e.unit===`s`?`In seconds`:null,e.zero?`0 = ${e.zero}`:null,`default ${String(e.default)}`].filter(Boolean).join(` \xB7 `);return(0,L.jsx)(Np,{title:e.label,description:e.help,children:(0,L.jsxs)(`form`,{onSubmit:o,children:[(0,L.jsx)(zp,{label:e.unit===`s`?`Seconds`:`Value`,htmlFor:`pref-value`,hint:s,error:i,children:(0,L.jsx)(Ip,{id:`pref-value`,autoFocus:!0,inputMode:`numeric`,value:n,onChange:e=>{r(e.target.value),a(``)},className:`font-mono`})}),(0,L.jsx)(Pp,{children:(0,L.jsx)(Q,{type:`submit`,variant:`primary`,children:`Save`})})]})})}function zm({current:e,onDone:t}){let[n,r]=(0,_.useState)(e??``),[i,a]=(0,_.useState)(``),[o,s]=(0,_.useState)(!1),c=async e=>{s(!0);try{let n=await X.setVaultDir(e);j.success(e?`Vault folder set to ${n.home}`:`Vault folder reset to the default`,{description:n.missingVault?`There\'s no vault.db there yet. Restart autho to use it.`:`Restart autho to use it.`}),t(n.home)}catch(e){a(Z(e)),s(!1)}};return(0,L.jsx)(Np,{title:`Vault folder`,description:`Where vault.db, project.json and daemon.json live. Files are not moved.`,children:(0,L.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),n.trim()&&c(n.trim())},children:[(0,L.jsx)(zp,{label:`Folder`,htmlFor:`vault-dir`,error:i,hint:`An absolute path; ~ is expanded`,children:(0,L.jsx)(Ip,{id:`vault-dir`,autoFocus:!0,value:n,onChange:e=>{r(e.target.value),a(``)},className:`font-mono`,maxLength:1024})}),(0,L.jsxs)(Pp,{children:[e?(0,L.jsx)(Q,{type:`button`,variant:`ghost`,className:`mr-auto`,disabled:o,onClick:()=>void c(null),children:`Use default`}):null,(0,L.jsx)(Q,{type:`submit`,variant:`primary`,disabled:o||!n.trim(),children:`Save`})]})]})})}function Bm(e){let[t,n]=(0,_.useState)(``),[r,i]=(0,_.useState)(``),[a,o]=(0,_.useState)(``),[s,c]=(0,_.useState)(!1),l=async n=>{if(n.preventDefault(),e.pattern&&!e.pattern.test(t))return o(e.patternError??`Invalid value`);if(t!==r)return i(``),o(e.mismatch);c(!0),await e.onSubmit(t).finally(()=>c(!1))};return(0,L.jsx)(Np,{title:e.title,description:e.description,children:(0,L.jsxs)(`form`,{onSubmit:e=>void l(e),className:`flex flex-col gap-4`,children:[(0,L.jsx)(zp,{label:e.labels[0],htmlFor:`two-first`,children:(0,L.jsx)(Ip,{id:`two-first`,autoFocus:!0,type:e.type,inputMode:e.inputMode,autoComplete:e.autoComplete??`off`,value:t,onChange:e=>{n(e.target.value),o(``)},maxLength:1024})}),(0,L.jsx)(zp,{label:e.labels[1],htmlFor:`two-second`,error:a,children:(0,L.jsx)(Ip,{id:`two-second`,type:e.type,inputMode:e.inputMode,autoComplete:e.autoComplete??`off`,value:r,onChange:e=>{i(e.target.value),o(``)},maxLength:1024})}),(0,L.jsx)(Pp,{className:`mt-1`,children:(0,L.jsxs)(Q,{type:`submit`,variant:`primary`,disabled:s||!t||!r,children:[s?(0,L.jsx)(Qu,{className:`border-on-accent/30 border-t-on-accent`}):null,e.submit]})})]})})}function Vm({secret:e,uri:t,onEnable:n}){let[r,i]=(0,_.useState)(``),[a,o]=(0,_.useState)(``),[s,c]=(0,_.useState)(!1),{copy:l}=id();return(0,_.useEffect)(()=>{km.toDataURL(t,{margin:1,width:384,errorCorrectionLevel:`M`,color:{dark:`#0d0d0dff`,light:`#eeeeeeff`}}).then(i,()=>i(``))},[t]),(0,L.jsx)(Np,{title:`Turn on two-factor codes`,description:`Scan the code with an authenticator app, then enter the 6-digit code it shows.`,children:(0,L.jsxs)(`form`,{className:`flex flex-col items-center gap-4`,onSubmit:e=>{e.preventDefault(),c(!0),n(a.replace(/\\s/g,``)).finally(()=>c(!1))},children:[r?(0,L.jsx)(`img`,{src:r,alt:`QR code for your authenticator app`,className:`size-48 rounded-lg [image-rendering:pixelated]`}):(0,L.jsx)(`div`,{className:`flex size-48 items-center justify-center rounded-lg bg-panel-alt`,children:(0,L.jsx)(Qu,{})}),(0,L.jsxs)(`button`,{type:`button`,onClick:()=>void l(`Setup key`,e,!0),className:`flex cursor-pointer items-center gap-2 rounded-md bg-chip px-3 py-1.5 font-mono text-xs tracking-wider text-muted hover:text-text`,title:`Copy setup key`,children:[e.replace(/(.{4})/g,`$1 `).trim(),` `,(0,L.jsx)(Od,{className:`size-3.5`})]}),(0,L.jsx)(zp,{label:`Code from the app`,htmlFor:`totp-code`,className:`w-full`,children:(0,L.jsx)(Ip,{id:`totp-code`,autoFocus:!0,inputMode:`numeric`,autoComplete:`one-time-code`,placeholder:`123 456`,className:`text-center font-mono text-lg tracking-[0.3em]`,value:a,onChange:e=>o(e.target.value.replace(/[^\\d ]/g,``).slice(0,9))})}),(0,L.jsx)(Pp,{className:`mt-0 w-full`,children:(0,L.jsxs)(Q,{type:`submit`,variant:`primary`,disabled:s||a.replace(/\\s/g,``).length<6,children:[s?(0,L.jsx)(Qu,{className:`border-on-accent/30 border-t-on-accent`}):null,`Turn on`]})})]})})}function Hm({onAdded:e}){let[t,n]=(0,_.useState)(()=>/mac/i.test(navigator.platform)?`Touch ID`:/win/i.test(navigator.platform)?`Windows Hello`:`Passkey`),[r,i]=(0,_.useState)(`idle`),[a,o]=(0,_.useState)(``),[s,c]=(0,_.useState)(()=>Op()?null:`This browser doesn\'t support passkeys`);(0,_.useEffect)(()=>{Op()&&X.auth().then(e=>c(kp(e.rpId)),()=>{})},[]);let l=async n=>{n.preventDefault(),o(``),i(`create`);try{let n=await jp(await X.passkeyOptions(),()=>i(`confirm`)),{security:r}=await X.addPasskey({...n,label:t.trim()||`Passkey`});e(r,t.trim()||`Passkey`)}catch(e){o(e instanceof DOMException&&e.name===`NotAllowedError`?`The passkey prompt was cancelled or timed out`:e instanceof DOMException&&e.name===`InvalidStateError`?`That authenticator is already registered`:Z(e)),i(`idle`)}};return(0,L.jsx)(Np,{title:`Add a passkey`,description:`Your authenticator must support the PRF extension (most platform passkeys and recent security keys do).`,children:(0,L.jsxs)(`form`,{onSubmit:e=>void l(e),className:`flex flex-col gap-4`,children:[(0,L.jsx)(zp,{label:`Name`,htmlFor:`passkey-label`,hint:`So you can tell your passkeys apart`,children:(0,L.jsx)(Ip,{id:`passkey-label`,autoFocus:!0,value:t,onChange:e=>n(e.target.value),maxLength:64,disabled:r!==`idle`})}),s?(0,L.jsx)(`p`,{className:`text-sm text-info`,children:s}):null,r===`confirm`?(0,L.jsx)(`p`,{className:`text-sm text-muted`,children:`Touch your authenticator once more to finish.`}):null,a?(0,L.jsxs)(`p`,{role:`alert`,className:`text-sm text-danger`,children:[`\u2717 `,a]}):null,(0,L.jsx)(Pp,{className:`mt-1`,children:(0,L.jsxs)(Q,{type:`submit`,variant:`primary`,disabled:r!==`idle`||s!==null,children:[r===`idle`?(0,L.jsx)(Hd,{}):(0,L.jsx)(Qu,{className:`border-on-accent/30 border-t-on-accent`}),r===`idle`?`Create passkey`:`Waiting for your authenticator\u2026`]})})]})})}function Um({content:e,vault:t,onClose:n}){let[r,i]=(0,_.useState)(!1),a=(0,_.useMemo)(()=>URL.createObjectURL(new Blob([e],{type:`text/plain`})),[e]);(0,_.useEffect)(()=>()=>URL.revokeObjectURL(a),[a]);let o=`autho-recovery-${t.replace(/\\.db$/,``).replace(/[^\\w.-]/g,`_`)}.txt`;return(0,L.jsx)(Np,{title:`Save your recovery file`,description:`Anyone with this file can unlock the vault. Keep it offline, somewhere safe. It is shown only once.`,hideClose:!0,onEscapeKeyDown:e=>!r&&e.preventDefault(),onPointerDownOutside:e=>e.preventDefault(),children:(0,L.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,L.jsx)(Q,{asChild:!0,variant:`primary`,size:`lg`,children:(0,L.jsxs)(`a`,{href:a,download:o,onClick:()=>i(!0),children:[(0,L.jsx)(Ad,{}),`Download `,o]})}),(0,L.jsxs)(`p`,{className:`text-xs text-dim`,children:[`Unlock with it from the Recovery tab on the unlock page, or with `,(0,L.jsx)(`code`,{className:`font-mono`,children:`autho unlock --recovery-file`}),`.`]}),(0,L.jsx)(Pp,{className:`mt-0`,children:(0,L.jsx)(Q,{variant:r?`secondary`:`ghost`,onClick:n,disabled:!r,children:r?`Done`:`Download it first`})})]})})}var Wm=yc;function Gm({className:e,...t}){return(0,L.jsx)(bc,{className:G(`inline-flex gap-1 rounded-lg border border-border bg-input p-1`,e),...t})}function Km({className:e,...t}){return(0,L.jsx)(xc,{className:G(`inline-flex flex-1 cursor-pointer items-center justify-center gap-1.5 rounded-md px-3 py-1.5 text-xs font-medium text-muted transition-colors hover:text-text data-[state=active]:bg-chip data-[state=active]:text-accent [&_svg]:size-3.5`,e),...t})}function qm({className:e,...t}){return(0,L.jsx)(Sc,{className:G(`focus:outline-none`,e),...t})}function Jm({className:e=``}){return(0,L.jsx)(`span`,{className:`inline-flex items-center rounded-sm bg-accent px-1.5 font-mono font-bold text-on-accent ${e}`,children:`autho`})}function Ym({onUnlocked:e}){let[t,n]=(0,_.useState)(null),[r,i]=(0,_.useState)(``),[a,o]=(0,_.useState)(`password`),[s,c]=(0,_.useState)(``),[l,u]=(0,_.useState)(``),[d,f]=(0,_.useState)(null),[p,m]=(0,_.useState)(``),[h,g]=(0,_.useState)(!1),v=(0,_.useRef)(null);(0,_.useEffect)(()=>{X.auth().then(n,e=>i(Z(e)))},[]),(0,_.useEffect)(()=>{t&&a===`password`&&v.current?.focus()},[t,a]);let y=async t=>{g(!0),m(``);try{e(await X.unlock(t))}catch(e){m(Z(e)),t.method===`password`&&(c(``),u(``),v.current?.focus())}finally{g(!1)}},b=e=>{e.preventDefault(),s&&y({method:`password`,password:s,totp:t?.totp?l:void 0})},x=async()=>{if(t){m(``),g(!0);try{let e=await Ap(t.rpId,t.passkeys);await y({method:`passkey`,...e})}catch(e){m(e instanceof DOMException&&e.name===`NotAllowedError`?`The passkey prompt was cancelled or timed out`:Z(e))}finally{g(!1)}}},S=async e=>{if(m(``),!e)return f(null);if(e.size>4096)return m(`That file is too large to be an autho recovery file`);f({name:e.name,content:await e.text()})},C=t?kp(t.rpId):null,w=t&&location.hostname!==t.rpId;return(0,L.jsx)(`div`,{className:`flex min-h-full items-center justify-center bg-[radial-gradient(ellipse_at_top,#1a1700_0%,transparent_55%)] p-6`,children:(0,L.jsxs)(`div`,{className:`w-full max-w-sm animate-in`,children:[(0,L.jsxs)(`div`,{className:`mb-8 flex flex-col items-center gap-3 text-center`,children:[(0,L.jsx)(`div`,{className:`flex size-14 items-center justify-center rounded-2xl border border-accent/30 bg-accent/10 text-accent`,children:(0,L.jsx)(Jd,{className:`size-6`})}),(0,L.jsx)(Jm,{className:`text-lg`}),(0,L.jsxs)(`p`,{className:`font-mono text-xs text-dim`,children:[t?.vault??`vault`,` \xB7 locked`]})]}),r?(0,L.jsx)(Xm,{tone:`danger`,children:r}):t?t.initialized?(0,L.jsxs)(`div`,{className:`rounded-xl border border-border bg-panel p-5 shadow-2xl shadow-black/50`,children:[(0,L.jsxs)(Wm,{value:a,onValueChange:e=>{o(e),m(``)},children:[t.passkeys.length>0||t.recovery?(0,L.jsxs)(Gm,{className:`mb-5 flex w-full`,children:[(0,L.jsxs)(Km,{value:`password`,children:[(0,L.jsx)(Wd,{}),`Password`]}),t.passkeys.length>0?(0,L.jsxs)(Km,{value:`passkey`,children:[(0,L.jsx)(Hd,{}),`Passkey`]}):null,t.recovery?(0,L.jsxs)(Km,{value:`recovery`,children:[(0,L.jsx)(Rd,{}),`Recovery`]}):null]}):null,(0,L.jsx)(qm,{value:`password`,children:(0,L.jsxs)(`form`,{onSubmit:b,className:`flex flex-col gap-4`,children:[(0,L.jsx)(`input`,{type:`text`,name:`username`,autoComplete:`username`,value:`autho:${t.vault}`,readOnly:!0,hidden:!0}),(0,L.jsx)(zp,{label:`Master password`,htmlFor:`password`,children:(0,L.jsx)(Ip,{id:`password`,ref:v,type:`password`,autoComplete:`current-password`,value:s,onChange:e=>c(e.target.value),disabled:h,maxLength:1024})}),t.totp?(0,L.jsx)(zp,{label:`Authenticator code`,htmlFor:`totp`,children:(0,L.jsx)(Ip,{id:`totp`,inputMode:`numeric`,autoComplete:`one-time-code`,placeholder:`123 456`,className:`font-mono tracking-[0.3em]`,value:l,onChange:e=>u(e.target.value.replace(/[^\\d ]/g,``).slice(0,9)),disabled:h})}):null,(0,L.jsxs)(Q,{type:`submit`,variant:`primary`,size:`lg`,disabled:h||!s||t.totp&&l.replace(/\\s/g,``).length<6,children:[h?(0,L.jsx)(Qu,{className:`border-on-accent/30 border-t-on-accent`}):null,`Unlock`]})]})}),(0,L.jsxs)(qm,{value:`passkey`,className:`flex flex-col gap-4`,children:[(0,L.jsxs)(`p`,{className:`text-sm text-muted`,children:[`Use one of your registered passkeys or security keys: `,t.passkeys.map(e=>e.label).join(`, `),`.`]}),C?(0,L.jsx)(Xm,{tone:`info`,children:C}):null,(0,L.jsxs)(Q,{variant:`primary`,size:`lg`,onClick:()=>void x(),disabled:h||C!==null,children:[h?(0,L.jsx)(Qu,{className:`border-on-accent/30 border-t-on-accent`}):(0,L.jsx)(Hd,{}),h?`Waiting for your passkey\u2026`:`Unlock with passkey`]})]}),(0,L.jsx)(qm,{value:`recovery`,children:(0,L.jsxs)(`form`,{className:`flex flex-col gap-4`,onSubmit:e=>{e.preventDefault(),d&&y({method:`recovery`,recoveryFile:d.content})},children:[(0,L.jsx)(`p`,{className:`text-sm text-muted`,children:`Choose the recovery file you saved when you set it up. It never leaves this machine.`}),(0,L.jsxs)(`label`,{className:`flex cursor-pointer flex-col items-center gap-2 rounded-lg border border-dashed border-border-focus bg-input px-4 py-6 text-center transition-colors hover:border-accent`,children:[(0,L.jsx)(Rd,{className:`size-6 text-dim`}),(0,L.jsx)(`span`,{className:`text-sm text-text`,children:d?.name??`Choose recovery file\u2026`}),(0,L.jsx)(`input`,{type:`file`,accept:`.txt,text/plain`,className:`sr-only`,onChange:e=>void S(e.target.files?.[0])})]}),(0,L.jsx)(Q,{type:`submit`,variant:`primary`,size:`lg`,disabled:h||!d,children:`Unlock with recovery file`})]})})]}),p?(0,L.jsxs)(`p`,{role:`alert`,className:`mt-4 flex items-start gap-2 text-sm text-danger`,children:[(0,L.jsx)(`span`,{children:`\u2717`}),p]}):null]}):(0,L.jsxs)(Xm,{tone:`info`,children:[`There\'s no vault here yet. Run `,(0,L.jsx)(`code`,{className:`font-mono text-accent`,children:`autho init`}),` in a terminal, then reload.`]}):(0,L.jsx)(`div`,{className:`flex justify-center py-10`,children:(0,L.jsx)(Qu,{})}),w?(0,L.jsxs)(`p`,{className:`mt-4 text-center text-xs text-dim`,children:[`Tip: open `,(0,L.jsx)(`a`,{className:`text-accent hover:underline`,href:`http://${t.rpId}:${location.port}/`,children:`http://${t.rpId}:${location.port}`}),` so passkeys work.`]}):null,(0,L.jsx)(`p`,{className:`mt-8 text-center text-xs text-dim`,children:`Local only \xB7 this page talks to autho on your machine`})]})})}function Xm({tone:e,children:t}){let n={info:`border-info/30 bg-info/5 text-info`,danger:`border-danger/40 bg-danger-bg text-danger`,success:`border-success/30 bg-success/5 text-success`}[e];return(0,L.jsxs)(`div`,{className:`flex items-start gap-2.5 rounded-lg border px-3.5 py-3 text-sm ${n}`,children:[(0,L.jsx)(hf,{className:`mt-0.5 size-4 shrink-0`}),(0,L.jsx)(`div`,{className:`min-w-0 text-text/90`,children:t})]})}var Zm=[`password`,`note`,`otp`];function Qm(e){return e===`note`?`Note`:e===`otp`?`Secret key`:`Password`}function $m({secret:e,existingNames:t,onDone:n}){let{prefs:r}=id(),i=e!==null,[a,o]=(0,_.useState)(e?.type??`password`),[s,c]=(0,_.useState)(e?.name??``),[l,u]=(0,_.useState)(``),[d,f]=(0,_.useState)(e?.username??``),[p,m]=(0,_.useState)(e?.url??``),[h,g]=(0,_.useState)(e?.description??``),[v,y]=(0,_.useState)(!1),[b,x]=(0,_.useState)(null),[S,C]=(0,_.useState)(!1),w=(0,_.useRef)(null),T=(0,_.useRef)(null),E=qu()?`\u2318`:`ctrl`,D=()=>{y(!1),w.current!==null&&(u(e=>e===w.current?``:e),w.current=null)};(0,_.useEffect)(()=>{if(!v||r.revealSeconds<=0)return;let e=window.setTimeout(D,r.revealSeconds*1e3);return()=>window.clearTimeout(e)},[v,r.revealSeconds]);let ee=async()=>{if(v)return D();if(i&&!l&&w.current===null)try{let{value:t}=await X.reveal(e.id);w.current=t,u(t)}catch(e){return x({message:Z(e)})}y(!0),T.current?.focus()},O=()=>{a===`password`&&(w.current=null,u(Lu(r.passwordLength,r.passwordSymbols)),j(`Generated a ${r.passwordLength}-character password`,{description:`${E}+r to view it`}))},te=async()=>{let r=s.trim();if(!r)return x({field:`name`,message:`Name is required`});if(!i&&t.includes(r))return x({field:`name`,message:`A secret named "${r}" already exists`});if(!i&&!l)return x({field:`value`,message:`${Qm(a)} is required`});if(a===`password`&&p.trim()&&!/^https?:\\/\\//i.test(p.trim()))return x({field:`url`,message:`URL must start with http:// or https://`});C(!0),x(null);try{if(i){let t={};if(r!==e.name&&(t.name=r),l&&l!==w.current&&(t.value=l),a!==`note`&&d.trim()!==(e.username??``)&&(t.username=d.trim()),a===`password`&&p.trim()!==(e.url??``)&&(t.url=p.trim()),h.trim()!==(e.description??``)&&(t.description=h.trim()),Object.keys(t).length===0)return j(`No changes`),n(e);let i=await X.updateSecret(e.id,t);j.success(`Saved "${r}"`),n(i)}else{let e=await X.createSecret({name:r,type:a,value:l,username:a===`note`?void 0:d.trim()||void 0,url:a===`password`&&p.trim()||void 0,description:h.trim()||void 0});j.success(`Created "${r}"`),n(e)}}catch(e){x({message:Z(e)}),C(!1)}},k=e=>{e.preventDefault(),te()},A=e=>{if(!(e.ctrlKey||e.metaKey))return;let t=e.key.toLowerCase();t===`s`?(e.preventDefault(),te()):t===`g`&&a===`password`?(e.preventDefault(),O()):t===`r`&&(e.preventDefault(),ee())},ne=e=>b?.field===e?b.message:void 0,re={id:`secret-value`,value:l,onChange:e=>u(e.target.value),placeholder:i?`leave empty to keep the current value`:a===`otp`?`base32 key, e.g. JBSWY3DPEHPK3PXP`:``,"aria-invalid":!!ne(`value`)||void 0,autoComplete:`new-password`,maxLength:65536};return(0,L.jsx)(Np,{title:i?`Edit ${e.name}`:`New secret`,className:`w-[min(94vw,34rem)]`,onKeyDown:A,onOpenAutoFocus:e=>{e.preventDefault(),document.getElementById(`secret-name`)?.focus()},children:(0,L.jsxs)(`form`,{onSubmit:k,className:`flex flex-col gap-4`,children:[i?null:(0,L.jsx)(`div`,{role:`radiogroup`,"aria-label":`Type`,className:`grid grid-cols-3 gap-1.5`,children:Zm.map(e=>{let t=Iu[e],n=e===a;return(0,L.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":n,onClick:()=>{o(e),x(null)},className:G(`flex cursor-pointer items-center justify-center gap-2 rounded-md border px-2 py-2 text-sm transition-colors`,n?`border-accent bg-accent text-on-accent font-semibold`:`border-border bg-chip text-muted hover:text-text`),children:[(0,L.jsx)(`span`,{className:n?`text-on-accent`:t.color,children:t.glyph}),t.label]},e)})}),(0,L.jsx)(zp,{label:`Name`,htmlFor:`secret-name`,error:ne(`name`),children:(0,L.jsx)(Ip,{id:`secret-name`,value:s,onChange:e=>c(e.target.value),placeholder:`e.g. github`,maxLength:200,"aria-invalid":!!ne(`name`)||void 0})}),(0,L.jsx)(zp,{label:Qm(a),htmlFor:`secret-value`,error:ne(`value`),hint:i?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(Xu,{children:[E,`+r`]}),` loads and shows the current value`]}):void 0,children:(0,L.jsxs)(`div`,{className:`flex items-start gap-1.5`,children:[a===`note`?(0,L.jsx)(Lp,{ref:T,...re,className:G(`font-mono`,v?`text-revealed`:`[-webkit-text-security:disc]`)}):(0,L.jsx)(Ip,{ref:T,...re,type:v?`text`:`password`,className:G(`font-mono`,v&&`text-revealed`)}),(0,L.jsx)(Q,{type:`button`,variant:`secondary`,size:`icon`,onClick:()=>void ee(),"aria-label":v?`Hide value`:`Show value`,title:`${v?`Hide`:`Show`} (${E}+r)`,children:v?(0,L.jsx)(Pd,{}):(0,L.jsx)(Id,{})}),a===`password`?(0,L.jsx)(Q,{type:`button`,variant:`secondary`,size:`icon`,onClick:O,"aria-label":`Generate password`,title:`Generate (${E}+g)`,className:`text-info`,children:(0,L.jsx)(yf,{})}):null]})}),a===`note`?null:(0,L.jsx)(zp,{label:`Username`,htmlFor:`secret-username`,children:(0,L.jsx)(Ip,{id:`secret-username`,value:d,onChange:e=>f(e.target.value),placeholder:`optional`,maxLength:512})}),a===`password`?(0,L.jsx)(zp,{label:`URL`,htmlFor:`secret-url`,error:ne(`url`),children:(0,L.jsx)(Ip,{id:`secret-url`,type:`url`,value:p,onChange:e=>m(e.target.value),placeholder:`optional, e.g. https://github.com`,maxLength:512,"aria-invalid":!!ne(`url`)||void 0})}):null,(0,L.jsx)(zp,{label:`Notes`,htmlFor:`secret-description`,children:(0,L.jsx)(Lp,{id:`secret-description`,value:h,onChange:e=>g(e.target.value),placeholder:`optional`,maxLength:8192,className:`min-h-16`})}),b&&!b.field?(0,L.jsxs)(`p`,{role:`alert`,className:`rounded-md bg-danger-bg px-3 py-2 text-sm text-danger`,children:[`\u2717 `,b.message]}):null,(0,L.jsxs)(Pp,{className:`mt-1`,children:[(0,L.jsxs)(`span`,{className:`mr-auto hidden text-xs text-dim sm:inline`,children:[(0,L.jsxs)(Xu,{children:[E,`+s`]}),` save \xB7 `,(0,L.jsx)(Xu,{children:`esc`}),` cancel`]}),(0,L.jsxs)(Q,{type:`submit`,variant:`primary`,disabled:S,children:[S?(0,L.jsx)(Qu,{className:`border-on-accent/30 border-t-on-accent`}):null,i?`Save`:`Create`]})]})]})})}function eh(){let e=id(),[t,n]=(0,_.useState)(null),[r,i]=(0,_.useState)(``),[a,o]=(0,_.useState)(null),[s,c]=(0,_.useState)(null),[l,u]=(0,_.useState)(null),[d,f]=(0,_.useState)(null),p=(0,_.useRef)(null),m=(0,_.useRef)(null),{setModalOpen:h}=e,g=(0,_.useCallback)(async(e=!0)=>{try{n(await X.secrets()),e||j.success(`Reloaded`)}catch(e){j.error(Z(e))}},[]);(0,_.useEffect)(()=>{g()},[g]),(0,_.useEffect)(()=>(h(d!==null),()=>h(!1)),[d,h]);let v=(0,_.useMemo)(()=>t?zu(t,r,e=>[e.name,e.username,e.url,e.description]):[],[t,r]);(0,_.useEffect)(()=>{v.length===0?o(null):v.some(e=>e.id===a)||o(v[0].id)},[v,a]);let y=(0,_.useCallback)(async e=>{try{let t=await X.secret(e);c(n=>n===null||n.id===e||t.id===e?t:n)}catch(e){j.error(Z(e))}},[]);(0,_.useEffect)(()=>{u(null),a?(c(e=>e?.id===a?e:null),y(a)):c(null)},[a,y]),(0,_.useEffect)(()=>{if(!l||e.prefs.revealSeconds<=0)return;let t=window.setTimeout(()=>u(null),e.prefs.revealSeconds*1e3);return()=>window.clearTimeout(t)},[l,e.prefs.revealSeconds]),(0,_.useEffect)(()=>{a&&m.current?.querySelector(`[data-id="${CSS.escape(a)}"]`)?.scrollIntoView({block:`nearest`})},[a]);let b=s&&s.id===a?s:null,x=v.find(e=>e.id===a)??null,S=(0,_.useCallback)(e=>{if(v.length===0)return;let t=v.findIndex(e=>e.id===a),n=e===`top`?0:e===`bottom`?v.length-1:Math.min(v.length-1,Math.max(0,t+e));o(v[n].id)},[v,a]),C=(0,_.useCallback)(e=>{i(``),o(e)},[]),w=(0,_.useCallback)(async(t=x)=>{if(t)try{if(t.type===`otp`){let{code:n}=await X.otp(t.id,!0);await e.copy(`Code`,n,!0)}else{let{value:n}=await X.reveal(t.id);await e.copy(t.type===`note`?`Note`:`Password`,n,!0)}}catch(e){j.error(Z(e))}},[x,e]),T=(0,_.useCallback)(()=>{if(x){if(!x.username)return void j(`${x.name} has no username`);e.copy(`Username`,x.username)}},[x,e]),E=(0,_.useCallback)(()=>{if(x){if(!x.url)return void j(`${x.name} has no URL`);e.copy(`URL`,x.url)}},[x,e]),D=(0,_.useCallback)(()=>{if(x){if(x.type===`otp`)return void w(x);if(!Vu(x.url))return void j(`${x.name} has no URL to open`);window.open(x.url,`_blank`,`noopener,noreferrer`)}},[x,w]),ee=(0,_.useCallback)(async()=>{if(x&&x.type!==`otp`){if(l?.id===x.id)return u(null);try{let{value:e}=await X.reveal(x.id);u({id:x.id,value:e})}catch(e){j.error(Z(e))}}},[x,l]),O=(0,_.useCallback)(async()=>{if(!b)return;let t=b.type===`otp`?b:b.links.find(e=>e.type===`otp`);if(!t)return void j(`${b.name} has no linked OTP`);try{let{code:n}=await X.otp(t.id,!0);await e.copy(`${t.name} code`,n,!0)}catch(e){j.error(Z(e))}},[b,e]),te=(0,_.useCallback)(async e=>{await g(),e&&(o(e),y(e))},[g,y]),k=(0,_.useCallback)(e=>{b&&f({kind:e,secret:b})},[b]);return(0,_.useEffect)(()=>{let t=t=>{if(t.defaultPrevented||e.paletteOpen||e.modalOpen||t.ctrlKey||t.metaKey||t.altKey||Ju(t.target))return;let n={ArrowDown:()=>S(1),j:()=>S(1),ArrowUp:()=>S(-1),k:()=>S(-1),g:()=>S(`top`),G:()=>S(`bottom`),Home:()=>S(`top`),End:()=>S(`bottom`),"/":()=>p.current?.focus(),n:()=>f({kind:`new`}),r:()=>void g(!1),Enter:()=>void w(),c:()=>void w(),u:T,w:E,s:()=>void ee()," ":()=>void ee(),o:D,e:()=>k(`edit`),t:()=>void O(),d:()=>k(`delete`),Delete:()=>k(`delete`),L:()=>k(`link`),Escape:()=>{l?u(null):r&&i(``)}}[t.key];n&&(t.preventDefault(),n())};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e.paletteOpen,e.modalOpen,S,g,w,T,E,ee,D,k,O,l,r]),ad((0,_.useMemo)(()=>{let e=[];if(x){let t=x.name;x.type===`otp`?e.push({id:`copy`,title:`Copy code \xB7 ${t}`,group:`Selected`,hint:`c`,run:()=>void w(x)}):e.push({id:`copy`,title:`Copy ${x.type===`note`?`note`:`password`} \xB7 ${t}`,group:`Selected`,hint:`c`,run:()=>void w(x)}),x.username&&e.push({id:`user`,title:`Copy username \xB7 ${t}`,group:`Selected`,hint:`u`,run:T}),x.url&&e.push({id:`url`,title:`Copy URL \xB7 ${t}`,group:`Selected`,hint:`w`,run:E}),Vu(x.url)&&e.push({id:`open`,title:`Open ${Bu(x.url)}`,group:`Selected`,hint:`o`,run:D}),x.type!==`otp`&&e.push({id:`reveal`,title:l?.id===x.id?`Hide value`:`Reveal value`,group:`Selected`,hint:`s`,run:()=>void ee()}),b?.links.some(e=>e.type===`otp`)&&e.push({id:`otp`,title:`Copy linked OTP code`,group:`Selected`,hint:`t`,run:()=>void O()}),e.push({id:`edit`,title:`Edit \xB7 ${t}`,group:`Selected`,hint:`e`,run:()=>k(`edit`)},{id:`link`,title:`Link secrets \xB7 ${t}`,group:`Selected`,hint:`L`,run:()=>k(`link`)},{id:`delete`,title:`Delete \xB7 ${t}`,group:`Selected`,hint:`d`,run:()=>k(`delete`)})}e.push({id:`new`,title:`New secret`,group:`Vault`,hint:`n`,run:()=>f({kind:`new`})},{id:`search`,title:`Search secrets`,group:`Vault`,hint:`/`,run:()=>p.current?.focus()},{id:`reload`,title:`Reload`,group:`Vault`,hint:`r`,run:()=>void g(!1)});for(let t of[...b?.links??[],...b?.linkedFrom??[]])e.push({id:`linked:${t.id}`,title:`Go to ${t.name}`,group:`Linked`,run:()=>C(t.id)});for(let n of t??[])e.push({id:`jump:${n.id}`,title:n.name,group:`Jump to`,keywords:[n.username,n.url].filter(Boolean).join(` `),run:()=>C(n.id)});return e},[x,b,t,l,w,T,E,D,ee,O,k,g,C]),(0,_.useMemo)(()=>{let e=[[`\u2191\u2193`,`move`],[`/`,`search`],[`n`,`new`]];return x?[...e,[`c`,x.type===`otp`?`copy code`:`copy`],[`s`,`reveal`],[`e`,`edit`],[`d`,`delete`],[`L`,`link`]]:e},[x])),(0,L.jsxs)(`div`,{className:`grid h-full min-h-0 grid-cols-1 gap-3 md:grid-cols-[minmax(16rem,22rem)_1fr] sm:gap-4`,children:[(0,L.jsxs)(Yu,{title:t?`Secrets \xB7 ${r?`${v.length}/${t.length}`:t.length}`:`Secrets`,actions:(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(sl,{content:`Reload (r)`,children:(0,L.jsx)(Q,{variant:`ghost`,size:`icon-sm`,onClick:()=>void g(!1),"aria-label":`Reload`,children:(0,L.jsx)(ef,{})})}),(0,L.jsx)(sl,{content:`New secret (n)`,children:(0,L.jsx)(Q,{variant:`ghost`,size:`icon-sm`,onClick:()=>f({kind:`new`}),"aria-label":`New secret`,children:(0,L.jsx)(Qd,{})})})]}),bodyClassName:`flex flex-col`,className:G(b?`hidden md:flex`:`flex`),children:[(0,L.jsxs)(`div`,{className:`relative border-b border-border p-2`,children:[(0,L.jsx)(af,{className:`pointer-events-none absolute left-4.5 top-1/2 size-4 -translate-y-1/2 text-dim`}),(0,L.jsx)(Ip,{ref:p,value:r,onChange:e=>i(e.target.value),placeholder:`Search`,"aria-label":`Search secrets`,className:`pl-8`,onKeyDown:e=>{e.key===`ArrowDown`||e.key===`ArrowUp`?(e.preventDefault(),S(e.key===`ArrowDown`?1:-1)):e.key===`Enter`?(e.preventDefault(),e.currentTarget.blur()):e.key===`Escape`&&(e.preventDefault(),r?i(``):e.currentTarget.blur())}}),r?null:(0,L.jsx)(Xu,{className:`pointer-events-none absolute right-4 top-1/2 -translate-y-1/2`,children:`/`})]}),(0,L.jsx)(`div`,{ref:m,role:`listbox`,"aria-label":`Secrets`,className:`min-h-0 flex-1 overflow-y-auto p-1.5`,children:t===null?(0,L.jsx)(`div`,{className:`flex justify-center py-10`,children:(0,L.jsx)(Qu,{})}):t.length===0?(0,L.jsxs)(Zu,{icon:(0,L.jsx)(Wd,{}),title:`Your vault is empty`,children:[`Press `,(0,L.jsx)(Xu,{children:`n`}),` to add your first secret.`]}):v.length===0?(0,L.jsxs)(Zu,{icon:(0,L.jsx)(af,{}),title:`No matches`,children:[`Nothing matches \u201C`,r,`\u201D.`]}):v.map(e=>(0,L.jsx)(th,{secret:e,active:e.id===a,onSelect:()=>o(e.id),onCopy:()=>void w(e)},e.id))})]}),(0,L.jsx)(`div`,{className:G(`min-h-0`,b?`flex`:`hidden md:flex`),children:b?(0,L.jsx)(nh,{secret:b,revealed:l?.id===b.id?l.value:null,onBack:()=>o(null),onCopy:()=>void w(b),onCopyLinkedOtp:()=>void O(),onCopyUsername:T,onCopyUrl:E,onOpen:D,onReveal:()=>void ee(),onEdit:()=>k(`edit`),onDelete:()=>k(`delete`),onLink:()=>k(`link`),onGoTo:C}):(0,L.jsx)(Yu,{className:`flex-1`,children:t&&t.length>0&&x?(0,L.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,L.jsx)(Qu,{})}):(0,L.jsxs)(Zu,{icon:(0,L.jsx)(Wd,{}),title:`Nothing selected`,children:[`Pick a secret on the left, or press `,(0,L.jsx)(Xu,{children:`n`}),` to add one.`]})})}),(0,L.jsx)(Mp,{open:d?.kind===`new`||d?.kind===`edit`,onOpenChange:e=>!e&&f(null),children:d?.kind===`new`||d?.kind===`edit`?(0,L.jsx)($m,{secret:d.kind===`edit`?d.secret:null,existingNames:(t??[]).map(e=>e.name),onDone:e=>{f(null),te(e.id)}}):null}),(0,L.jsx)(Mp,{open:d?.kind===`delete`,onOpenChange:e=>!e&&f(null),children:d?.kind===`delete`?(0,L.jsx)(sh,{secret:d.secret,onDone:()=>{f(null),te()},onCancel:()=>f(null)}):null}),(0,L.jsx)(Mp,{open:d?.kind===`link`,onOpenChange:e=>!e&&f(null),children:d?.kind===`link`?(0,L.jsx)(ch,{secret:d.secret,secrets:t??[],onChanged:()=>void te(d.secret.id)}):null})]})}function th({secret:e,active:t,onSelect:n,onCopy:r}){let i=Iu[e.type],a=e.username??(e.url?Bu(e.url):i.label);return(0,L.jsxs)(`div`,{role:`option`,"aria-selected":t,"data-id":e.id,onClick:n,onDoubleClick:r,className:G(`group flex cursor-pointer items-center gap-3 rounded-md border-l-2 px-2.5 py-2 transition-colors`,t?`border-accent bg-selection`:`border-transparent hover:bg-selection/50`),children:[(0,L.jsx)(`span`,{className:G(`w-3 shrink-0 text-center text-xs`,i.color),"aria-hidden":!0,children:i.glyph}),(0,L.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,L.jsx)(`div`,{className:G(`truncate text-sm`,t?`text-accent`:`text-text`),children:e.name}),(0,L.jsx)(`div`,{className:`truncate text-xs text-dim`,children:a})]}),e.linkCount>0?(0,L.jsxs)(`span`,{className:`flex shrink-0 items-center gap-0.5 text-xs text-dim`,title:`${e.linkCount} linked`,children:[(0,L.jsx)(Kd,{className:`size-3`}),e.linkCount]}):null]})}function nh(e){let{secret:t,revealed:n}=e,r=Iu[t.type],i=t.links.find(e=>e.type===`otp`);return(0,L.jsx)(Yu,{className:`flex-1`,focused:!0,title:(0,L.jsxs)(`span`,{className:`flex items-center gap-2 normal-case tracking-normal`,children:[(0,L.jsx)(`button`,{type:`button`,onClick:e.onBack,className:`cursor-pointer text-dim hover:text-text md:hidden`,"aria-label":`Back`,children:`\u2190`}),(0,L.jsx)(`span`,{className:G(`text-xs`,r.color),children:r.glyph}),(0,L.jsx)(`span`,{className:`text-sm text-text`,children:t.name}),(0,L.jsx)(`span`,{className:`rounded bg-chip px-1.5 py-0.5 text-[11px] font-normal text-muted`,children:r.label})]}),actions:(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(sl,{content:`Edit (e)`,children:(0,L.jsx)(Q,{variant:`ghost`,size:`icon-sm`,onClick:e.onEdit,"aria-label":`Edit`,children:(0,L.jsx)(Xd,{})})}),(0,L.jsx)(sl,{content:`Link secrets (shift+L)`,children:(0,L.jsx)(Q,{variant:`ghost`,size:`icon-sm`,onClick:e.onLink,"aria-label":`Link secrets`,children:(0,L.jsx)(Kd,{})})}),(0,L.jsx)(sl,{content:`Delete (d)`,children:(0,L.jsx)(Q,{variant:`ghost`,size:`icon-sm`,onClick:e.onDelete,"aria-label":`Delete`,className:`hover:text-danger`,children:(0,L.jsx)(pf,{})})})]}),bodyClassName:`overflow-y-auto`,children:(0,L.jsxs)(`dl`,{className:`flex flex-col divide-y divide-border`,children:[t.type===`otp`?(0,L.jsx)(rh,{label:`Code`,keyHint:`c`,children:(0,L.jsx)(ah,{id:t.id,onCopy:e.onCopy})}):(0,L.jsx)(rh,{label:t.type===`note`?`Note`:`Password`,keyHint:`c`,actions:(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(sl,{content:n?`Hide (s)`:`Reveal (s)`,children:(0,L.jsx)(Q,{variant:`ghost`,size:`icon-sm`,onClick:e.onReveal,"aria-label":n?`Hide`:`Reveal`,children:n?(0,L.jsx)(Pd,{}):(0,L.jsx)(Id,{})})}),(0,L.jsx)(sl,{content:`Copy (c)`,children:(0,L.jsx)(Q,{variant:`ghost`,size:`icon-sm`,onClick:e.onCopy,"aria-label":`Copy`,children:(0,L.jsx)(Od,{})})})]}),children:n===null?(0,L.jsx)(`span`,{className:`font-mono text-sm tracking-wider text-muted`,children:Fu}):(0,L.jsx)(`pre`,{className:G(`whitespace-pre-wrap break-all font-mono text-sm text-revealed`,t.type===`note`&&`max-h-80 overflow-y-auto`),children:n})}),t.username?(0,L.jsx)(rh,{label:`Username`,keyHint:`u`,actions:(0,L.jsx)(sl,{content:`Copy (u)`,children:(0,L.jsx)(Q,{variant:`ghost`,size:`icon-sm`,onClick:e.onCopyUsername,"aria-label":`Copy username`,children:(0,L.jsx)(Od,{})})}),children:(0,L.jsx)(`span`,{className:`break-all font-mono text-sm text-text`,children:t.username})}):null,t.url?(0,L.jsx)(rh,{label:`URL`,keyHint:`w`,actions:(0,L.jsxs)(L.Fragment,{children:[Vu(t.url)?(0,L.jsx)(sl,{content:`Open (o)`,children:(0,L.jsx)(Q,{variant:`ghost`,size:`icon-sm`,onClick:e.onOpen,"aria-label":`Open URL`,children:(0,L.jsx)(Md,{})})}):null,(0,L.jsx)(sl,{content:`Copy (w)`,children:(0,L.jsx)(Q,{variant:`ghost`,size:`icon-sm`,onClick:e.onCopyUrl,"aria-label":`Copy URL`,children:(0,L.jsx)(Od,{})})})]}),children:(0,L.jsx)(`span`,{className:`break-all text-sm text-info`,children:t.url})}):null,i?(0,L.jsx)(rh,{label:`OTP \xB7 ${i.name}`,keyHint:`t`,children:(0,L.jsx)(ah,{id:i.id,onCopy:e.onCopyLinkedOtp})}):null,t.description?(0,L.jsx)(rh,{label:t.type===`password`?`Notes`:`Description`,children:(0,L.jsx)(`p`,{className:`whitespace-pre-wrap break-words text-sm text-text/90`,children:t.description})}):null,t.links.length>0||t.linkedFrom.length>0?(0,L.jsx)(rh,{label:`Linked`,children:(0,L.jsxs)(`div`,{className:`flex flex-wrap gap-1.5`,children:[t.links.map(t=>(0,L.jsx)(ih,{secret:t,onClick:()=>e.onGoTo(t.id)},`to:${t.id}`)),t.linkedFrom.map(t=>(0,L.jsx)(ih,{secret:t,from:!0,onClick:()=>e.onGoTo(t.id)},`from:${t.id}`))]})}):null,(0,L.jsx)(rh,{label:`History`,children:(0,L.jsxs)(`div`,{className:`grid grid-cols-[auto_1fr] gap-x-4 gap-y-1 text-xs`,children:[(0,L.jsx)(`span`,{className:`text-dim`,children:`Created`}),(0,L.jsx)(`span`,{className:`text-muted`,children:Uu(t.createdAt)}),(0,L.jsx)(`span`,{className:`text-dim`,children:`Updated`}),(0,L.jsx)(`span`,{className:`text-muted`,children:Uu(t.updatedAt)})]})})]})})}function rh({label:e,keyHint:t,actions:n,children:r}){return(0,L.jsxs)(`div`,{className:`group flex items-start gap-4 px-4 py-3.5`,children:[(0,L.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,L.jsxs)(`dt`,{className:`mb-1.5 flex items-center gap-2 text-[11px] font-semibold uppercase tracking-wider text-dim`,children:[e,t?(0,L.jsx)(Xu,{className:`opacity-0 transition-opacity group-hover:opacity-100`,children:t}):null]}),(0,L.jsx)(`dd`,{className:`min-w-0`,children:r})]}),n?(0,L.jsx)(`div`,{className:`flex shrink-0 items-center gap-0.5 pt-4`,children:n}):null]})}function ih({secret:e,from:t,onClick:n}){let r=Iu[e.type];return(0,L.jsxs)(`button`,{type:`button`,onClick:n,title:t?`${e.name} links to this`:`Linked under this`,className:`flex cursor-pointer items-center gap-1.5 rounded-md border border-border bg-chip px-2 py-1 text-xs text-text transition-colors hover:border-accent hover:text-accent`,children:[(0,L.jsx)(`span`,{className:r.color,children:r.glyph}),t?(0,L.jsx)(`span`,{className:`text-dim`,children:`\u2196`}):null,e.name]})}function ah({id:e,onCopy:t}){let[n,r]=(0,_.useState)(null),[i,a]=(0,_.useState)(Date.now()),[o,s]=(0,_.useState)(``);if((0,_.useEffect)(()=>{let t=!1,n=0,i=async()=>{try{let a=await X.otp(e);if(t)return;let o=Date.parse(a.expiresAt);r({code:a.code,expiresAt:o}),s(``),n=window.setTimeout(i,Math.max(500,o-Date.now()+250))}catch(e){t||s(Z(e))}};i();let o=window.setInterval(()=>a(Date.now()),1e3);return()=>{t=!0,window.clearTimeout(n),window.clearInterval(o)}},[e]),o)return(0,L.jsx)(`span`,{className:`text-sm text-danger`,children:o});if(!n)return(0,L.jsx)(Qu,{});let c=Math.max(0,Math.ceil((n.expiresAt-i)/1e3));return(0,L.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,L.jsx)(`button`,{type:`button`,onClick:t,className:`cursor-pointer font-mono text-2xl tracking-[0.15em] text-success hover:text-revealed`,title:`Copy code`,children:Hu(n.code)}),(0,L.jsxs)(`span`,{className:G(`flex items-center gap-1.5 font-mono text-xs`,c<=5?`text-danger`:`text-muted`),children:[(0,L.jsx)(oh,{seconds:c}),c,`s`]}),(0,L.jsx)(Q,{variant:`ghost`,size:`icon-sm`,onClick:t,"aria-label":`Copy code`,children:(0,L.jsx)(Od,{})})]})}function oh({seconds:e,period:t=30}){let n=2*Math.PI*7;return(0,L.jsxs)(`svg`,{viewBox:`0 0 18 18`,className:`size-4 -rotate-90`,"aria-hidden":!0,children:[(0,L.jsx)(`circle`,{cx:`9`,cy:`9`,r:7,fill:`none`,stroke:`currentColor`,strokeOpacity:`0.2`,strokeWidth:`2`}),(0,L.jsx)(`circle`,{cx:`9`,cy:`9`,r:7,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeDasharray:n,strokeDashoffset:n*(1-Math.min(1,e/t)),className:`transition-[stroke-dashoffset] duration-1000 ease-linear`})]})}function sh({secret:e,onDone:t,onCancel:n}){let[r,i]=(0,_.useState)(!1),a=e.links,o=(0,_.useCallback)(async n=>{i(!0);try{let r=await X.deleteSecret(e.id,n),i=r.removedLinked.length?` and ${r.removedLinked.length} linked`:``;j.success(`Deleted ${r.name}${i}`,{description:r.keptLinked.length?`Kept ${r.keptLinked.map(e=>e.name).join(`, `)} (linked elsewhere)`:void 0}),t()}catch(e){j.error(Z(e)),i(!1)}},[e.id,t]);return(0,L.jsxs)(Np,{danger:!0,title:`Delete ${e.name}?`,description:`This can\'t be undone.`,onKeyDown:e=>{r||(e.key===`y`?o(!1):e.key===`a`&&a.length>0?o(!0):e.key===`n`&&n())},children:[a.length>0?(0,L.jsxs)(`div`,{className:`text-sm text-muted`,children:[`It links to `,a.length===1?`one secret`:`${a.length} secrets`,`:`,(0,L.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-1.5`,children:a.map(e=>(0,L.jsxs)(`span`,{className:`flex items-center gap-1.5 rounded-md bg-chip px-2 py-1 text-xs text-text`,children:[(0,L.jsx)(`span`,{className:Iu[e.type].color,children:Iu[e.type].glyph}),e.name]},e.id))}),(0,L.jsx)(`p`,{className:`mt-2 text-xs text-dim`,children:`Linked secrets still used by another secret are kept.`})]}):null,(0,L.jsxs)(Pp,{children:[(0,L.jsxs)(Q,{variant:`ghost`,onClick:n,disabled:r,children:[`Cancel `,(0,L.jsx)(Xu,{children:`n`})]}),a.length>0?(0,L.jsxs)(Q,{variant:`danger`,onClick:()=>void o(!0),disabled:r,children:[`Delete with linked `,(0,L.jsx)(Xu,{children:`a`})]}):null,(0,L.jsxs)(Q,{variant:`danger`,onClick:()=>void o(!1),disabled:r,autoFocus:!0,children:[r?(0,L.jsx)(Qu,{}):null,`Delete `,(0,L.jsx)(Xu,{children:`y`})]})]})]})}function ch({secret:e,secrets:t,onChanged:n}){let[r,i]=(0,_.useState)(``),[a,o]=(0,_.useState)(()=>new Set(e.links.map(e=>e.id))),[s,c]=(0,_.useState)(null),[l,u]=(0,_.useState)(0),d=(0,_.useMemo)(()=>zu(t.filter(t=>t.id!==e.id),r,e=>[e.name,e.username,e.url]),[t,e.id,r]);(0,_.useEffect)(()=>u(0),[r]);let f=async t=>{if(s)return;c(t.id);let r=a.has(t.id);try{r?await X.unlink(e.id,t.id):await X.link(e.id,t.id),o(e=>{let n=new Set(e);return r?n.delete(t.id):n.add(t.id),n}),j.success(r?`Unlinked ${t.name}`:`Linked ${t.name} under ${e.name}`),n()}catch(e){j.error(Z(e))}finally{c(null)}};return(0,L.jsxs)(Np,{title:`Link secrets \xB7 ${e.name}`,description:`Linked secrets travel with this one in leases and show on its page.`,className:`w-[min(92vw,34rem)]`,children:[(0,L.jsx)(Ip,{autoFocus:!0,value:r,onChange:e=>i(e.target.value),placeholder:`Search secrets`,"aria-label":`Search secrets to link`,onKeyDown:e=>{e.key===`ArrowDown`?(e.preventDefault(),u(e=>Math.min(d.length-1,e+1))):e.key===`ArrowUp`?(e.preventDefault(),u(e=>Math.max(0,e-1))):e.key===`Enter`&&d[l]&&(e.preventDefault(),f(d[l]))}}),(0,L.jsx)(`div`,{className:`mt-3 max-h-[45vh] overflow-y-auto rounded-md border border-border`,children:d.length===0?(0,L.jsxs)(`p`,{className:`px-3 py-6 text-center text-sm text-dim`,children:[`No other secrets`,r?` match`:``,`.`]}):d.map((e,t)=>{let n=a.has(e.id),r=Iu[e.type];return(0,L.jsxs)(`button`,{type:`button`,onClick:()=>void f(e),onMouseEnter:()=>u(t),disabled:s!==null,className:G(`flex w-full cursor-pointer items-center gap-3 border-b border-border px-3 py-2 text-left last:border-b-0`,t===l?`bg-selection`:``),children:[(0,L.jsx)(`span`,{className:G(`w-3 text-center text-xs`,r.color),children:r.glyph}),(0,L.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-sm text-text`,children:e.name}),s===e.id?(0,L.jsx)(Qu,{}):n?(0,L.jsxs)(`span`,{className:`flex items-center gap-1 text-xs text-success`,children:[(0,L.jsx)(_f,{className:`size-3.5`}),`linked`]}):(0,L.jsx)(`span`,{className:`text-xs text-dim`,children:`link`})]},e.id)})}),(0,L.jsxs)(`p`,{className:`mt-2 text-xs text-dim`,children:[(0,L.jsx)(Xu,{children:`\u2191\u2193`}),` move \xB7 `,(0,L.jsx)(Xu,{children:`enter`}),` link / unlink \xB7 `,(0,L.jsx)(Xu,{children:`esc`}),` done`]})]})}var lh=[{screen:`vault`,label:`Vault`,key:`1`},{screen:`leases`,label:`Leases`,key:`2`},{screen:`audit`,label:`Audit`,key:`3`},{screen:`health`,label:`Integrity`,key:`4`},{screen:`settings`,label:`Settings`,key:`,`}];function uh(){let e=id(),t=qu()?`\u2318`:`ctrl`;(0,_.useEffect)(()=>{let t=t=>{let n=t.ctrlKey||t.metaKey;if(n&&!t.shiftKey&&!t.altKey&&t.key.toLowerCase()===`k`){t.preventDefault(),e.setPaletteOpen(!e.paletteOpen);return}if(n&&!t.shiftKey&&!t.altKey&&t.key.toLowerCase()===`l`){t.preventDefault(),e.lock();return}if(n||t.altKey||e.paletteOpen||e.modalOpen||Ju(t.target))return;if(t.key===`?`){t.preventDefault(),e.setPaletteOpen(!0);return}let r=lh.find(e=>e.key===t.key);r&&(t.preventDefault(),e.go(r.screen))};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e]);let n=(0,_.useMemo)(()=>[...lh.map(t=>({id:`go:${t.screen}`,title:`Go to ${t.label}`,group:`Navigate`,hint:t.key,run:()=>e.go(t.screen)})),{id:`lock`,title:`Lock vault`,group:`App`,hint:`${t}+l`,run:()=>e.lock()}],[e,t]),r=lh.find(t=>t.screen===e.screen)?.label??``;return(0,L.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,L.jsxs)(`header`,{className:`flex h-12 shrink-0 items-center gap-4 border-b border-border bg-panel px-4`,children:[(0,L.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,L.jsx)(Jm,{}),(0,L.jsx)(`span`,{className:`hidden font-semibold text-text sm:inline`,children:r})]}),(0,L.jsx)(`nav`,{className:`flex min-w-0 flex-1 items-center gap-0.5 overflow-x-auto`,"aria-label":`Main`,children:lh.map(t=>(0,L.jsx)(`button`,{type:`button`,onClick:()=>e.go(t.screen),"aria-current":e.screen===t.screen?`page`:void 0,className:G(`cursor-pointer rounded-md px-3 py-1.5 text-sm transition-colors`,e.screen===t.screen?`bg-selection text-accent`:`text-muted hover:bg-selection/60 hover:text-text`),children:t.label},t.screen))}),(0,L.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,L.jsx)(sl,{content:e.session.vault.path,side:`bottom`,children:(0,L.jsxs)(`span`,{className:`hidden items-center gap-1.5 font-mono text-xs text-muted md:flex`,children:[(0,L.jsx)(`span`,{className:`text-success`,children:`\u25CF`}),` unlocked `,(0,L.jsx)(`span`,{className:`text-dim`,children:`\xB7`}),` `,e.session.vault.name]})}),(0,L.jsx)(sl,{content:`Command palette (${t}+k)`,side:`bottom`,children:(0,L.jsx)(Q,{variant:`ghost`,size:`icon`,onClick:()=>e.setPaletteOpen(!0),"aria-label":`Command palette`,children:(0,L.jsx)(Ed,{})})}),(0,L.jsx)(sl,{content:`Lock (${t}+l)`,side:`bottom`,children:(0,L.jsx)(Q,{variant:`ghost`,size:`icon`,onClick:()=>e.lock(),"aria-label":`Lock vault`,children:(0,L.jsx)(Jd,{})})})]})]}),(0,L.jsxs)(`main`,{className:`min-h-0 flex-1 overflow-hidden p-3 sm:p-4`,children:[e.screen===`vault`?(0,L.jsx)(eh,{}):null,e.screen===`leases`?(0,L.jsx)($p,{}):null,e.screen===`audit`?(0,L.jsx)(Sp,{}):null,e.screen===`health`?(0,L.jsx)(Gp,{}):null,e.screen===`settings`?(0,L.jsx)(Nm,{}):null]}),(0,L.jsxs)(`footer`,{className:`flex h-9 shrink-0 items-center gap-4 overflow-hidden border-t border-border bg-panel px-4 text-xs text-dim`,children:[e.hints.map(([e,t])=>(0,L.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1.5`,children:[(0,L.jsx)(Xu,{children:e}),t]},e+t)),(0,L.jsxs)(`span`,{className:`ml-auto flex shrink-0 items-center gap-1.5`,children:[(0,L.jsxs)(Xu,{children:[t,`+k`]}),` commands`,(0,L.jsxs)(Xu,{className:`ml-2`,children:[t,`+l`]}),` lock`]})]}),(0,L.jsx)(yp,{commands:[...e.screenCommands,...n]})]})}function dh(){let[e,t]=(0,_.useState)(null),[n,r]=(0,_.useState)(J),i=(0,_.useCallback)(e=>{t(null),e&&j(e,{icon:`\u203A`,id:`locked`})},[]);(0,_.useEffect)(()=>{nd(()=>i(`Vault locked`))},[i]),(0,_.useEffect)(()=>{J()&&X.session().then(t).catch(()=>q(null)).finally(()=>r(!1))},[]);let a=(0,_.useCallback)(e=>{q(e.csrf),t(e)},[]);return(0,L.jsxs)(ol,{delayDuration:300,children:[n?(0,L.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,L.jsx)(Qu,{})}):e?(0,L.jsx)(cd,{session:e,onLocked:i,children:(0,L.jsx)(uh,{})},e.csrf):(0,L.jsx)(Ym,{onUnlocked:a}),(0,L.jsx)(_e,{theme:`dark`,position:`bottom-right`,offset:44,toastOptions:{classNames:{toast:`!bg-panel-alt !border !border-border !text-text !font-sans !text-sm !rounded-lg`,description:`!text-muted`,success:`[&_[data-icon]]:!text-success`,error:`[&_[data-icon]]:!text-danger`}}})]})}(0,g.createRoot)(document.getElementById(`root`)).render((0,L.jsx)(_.StrictMode,{children:(0,L.jsx)(dh,{})}));</script>\n <style rel="stylesheet" crossorigin>/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, "Cascadia Code", "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--color-black:#000;--spacing:.25rem;--container-sm:24rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-normal:0em;--tracking-wide:.025em;--tracking-wider:.05em;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-accent:gold;--color-on-accent:#000;--color-bg:#0d0d0d;--color-panel:#141414;--color-panel-alt:#1c1c1c;--color-border:#333;--color-border-focus:#555;--color-selection:#222;--color-chip:#262626;--color-input:#111;--color-input-focus:#1a1a1a;--color-text:#eee;--color-muted:#aaa;--color-dim:#777;--color-success:#3c7;--color-danger:#f55;--color-danger-bg:#311;--color-info:#5bf;--color-revealed:#7cfc00;--animate-in:fade-in .12s ease-out}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}html,body,#root{height:100%}body{background-color:var(--color-bg);font-family:var(--font-sans);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px}::selection{background:var(--color-accent);color:var(--color-on-accent)}*{scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}:focus-visible{outline:1px solid var(--color-accent);outline-offset:1px}}@layer components{.kbd{border-radius:var(--radius-sm);background-color:var(--color-chip);padding-inline:calc(var(--spacing) * 1.5);font-family:var(--font-mono);--tw-leading:calc(var(--spacing) * 5);font-size:11px;line-height:calc(var(--spacing) * 5);color:var(--color-muted);align-items:center;display:inline-flex}}@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:0}.top-1\\/2{top:50%}.top-\\[10vh\\]{top:10vh}.top-\\[14vh\\]{top:14vh}.right-4{right:calc(var(--spacing) * 4)}.left-1\\/2{left:50%}.left-4\\.5{left:calc(var(--spacing) * 4.5)}.z-50{z-index:50}.z-\\[60\\]{z-index:60}.mx-auto{margin-inline:auto}.-mt-2{margin-top:calc(var(--spacing) * -2)}.mt-0{margin-top:0}.mt-0\\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mr-auto{margin-right:auto}.mb-1\\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-14{width:calc(var(--spacing) * 14);height:calc(var(--spacing) * 14)}.size-48{width:calc(var(--spacing) * 48);height:calc(var(--spacing) * 48)}.h-5{height:calc(var(--spacing) * 5)}.h-7{height:calc(var(--spacing) * 7)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-auto{height:auto}.h-full{height:100%}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-\\[32vh\\]{max-height:32vh}.max-h-\\[45vh\\]{max-height:45vh}.max-h-\\[50vh\\]{max-height:50vh}.max-h-\\[80vh\\]{max-height:80vh}.min-h-0{min-height:0}.min-h-11{min-height:calc(var(--spacing) * 11)}.min-h-16{min-height:calc(var(--spacing) * 16)}.min-h-24{min-height:calc(var(--spacing) * 24)}.min-h-full{min-height:100%}.w-3{width:calc(var(--spacing) * 3)}.w-9{width:calc(var(--spacing) * 9)}.w-16{width:calc(var(--spacing) * 16)}.w-24{width:calc(var(--spacing) * 24)}.w-32{width:calc(var(--spacing) * 32)}.w-44{width:calc(var(--spacing) * 44)}.w-\\[min\\(92vw\\,30rem\\)\\]{width:min(92vw,30rem)}.w-\\[min\\(92vw\\,34rem\\)\\]{width:min(92vw,34rem)}.w-\\[min\\(92vw\\,36rem\\)\\]{width:min(92vw,36rem)}.w-\\[min\\(94vw\\,34rem\\)\\]{width:min(94vw,34rem)}.w-\\[min\\(94vw\\,36rem\\)\\]{width:min(94vw,36rem)}.w-full{width:100%}.max-w-4xl{max-width:var(--container-4xl)}.max-w-sm{max-width:var(--container-sm)}.min-w-0{min-width:0}.flex-1{flex:1}.shrink-0{flex-shrink:0}.-translate-x-1\\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0\\.5{--tw-translate-x:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-rotate-90{rotate:-90deg}.animate-in{animation:var(--animate-in)}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.resize-y{resize:vertical}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\\[8rem_1fr\\]{grid-template-columns:8rem 1fr}.grid-cols-\\[auto_1fr\\]{grid-template-columns:auto 1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-y-1{row-gap:var(--spacing)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-border>:not(:last-child)){border-color:var(--color-border)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.\\!rounded-lg{border-radius:var(--radius-lg)!important}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.\\!border{border-style:var(--tw-border-style)!important;border-width:1px!important}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.\\!border-border{border-color:var(--color-border)!important}.border-accent{border-color:var(--color-accent)}.border-accent\\/30{border-color:#ffd7004d}@supports (color:color-mix(in lab, red, red)){.border-accent\\/30{border-color:color-mix(in oklab, var(--color-accent) 30%, transparent)}}.border-border{border-color:var(--color-border)}.border-border-focus{border-color:var(--color-border-focus)}.border-danger\\/40{border-color:#f556}@supports (color:color-mix(in lab, red, red)){.border-danger\\/40{border-color:color-mix(in oklab, var(--color-danger) 40%, transparent)}}.border-danger\\/50{border-color:#ff555580}@supports (color:color-mix(in lab, red, red)){.border-danger\\/50{border-color:color-mix(in oklab, var(--color-danger) 50%, transparent)}}.border-danger\\/60{border-color:#f559}@supports (color:color-mix(in lab, red, red)){.border-danger\\/60{border-color:color-mix(in oklab, var(--color-danger) 60%, transparent)}}.border-dim{border-color:var(--color-dim)}.border-info\\/30{border-color:#55bbff4d}@supports (color:color-mix(in lab, red, red)){.border-info\\/30{border-color:color-mix(in oklab, var(--color-info) 30%, transparent)}}.border-on-accent\\/30{border-color:#0000004d}@supports (color:color-mix(in lab, red, red)){.border-on-accent\\/30{border-color:color-mix(in oklab, var(--color-on-accent) 30%, transparent)}}.border-success\\/30{border-color:#33cc774d}@supports (color:color-mix(in lab, red, red)){.border-success\\/30{border-color:color-mix(in oklab, var(--color-success) 30%, transparent)}}.border-transparent{border-color:#0000}.border-t-accent{border-top-color:var(--color-accent)}.border-t-on-accent{border-top-color:var(--color-on-accent)}.\\!bg-panel-alt{background-color:var(--color-panel-alt)!important}.bg-accent{background-color:var(--color-accent)}.bg-accent\\/10{background-color:#ffd7001a}@supports (color:color-mix(in lab, red, red)){.bg-accent\\/10{background-color:color-mix(in oklab, var(--color-accent) 10%, transparent)}}.bg-black\\/60{background-color:#0009}@supports (color:color-mix(in lab, red, red)){.bg-black\\/60{background-color:color-mix(in oklab, var(--color-black) 60%, transparent)}}.bg-black\\/70{background-color:#000000b3}@supports (color:color-mix(in lab, red, red)){.bg-black\\/70{background-color:color-mix(in oklab, var(--color-black) 70%, transparent)}}.bg-chip{background-color:var(--color-chip)}.bg-danger-bg{background-color:var(--color-danger-bg)}.bg-info\\/5{background-color:#55bbff0d}@supports (color:color-mix(in lab, red, red)){.bg-info\\/5{background-color:color-mix(in oklab, var(--color-info) 5%, transparent)}}.bg-input{background-color:var(--color-input)}.bg-muted{background-color:var(--color-muted)}.bg-panel{background-color:var(--color-panel)}.bg-panel-alt{background-color:var(--color-panel-alt)}.bg-selection{background-color:var(--color-selection)}.bg-success\\/5{background-color:#33cc770d}@supports (color:color-mix(in lab, red, red)){.bg-success\\/5{background-color:color-mix(in oklab, var(--color-success) 5%, transparent)}}.bg-transparent{background-color:#0000}.bg-\\[radial-gradient\\(ellipse_at_top\\,\\#1a1700_0\\%\\,transparent_55\\%\\)\\]{background-image:radial-gradient(at top,#1a1700 0%,#0000 55%)}.p-0{padding:0}.p-1{padding:var(--spacing)}.p-1\\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.px-1\\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-3\\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-12{padding-block:calc(var(--spacing) * 12)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pb-1{padding-bottom:var(--spacing)}.pl-8{padding-left:calc(var(--spacing) * 8)}.pl-\\[6\\.75rem\\]{padding-left:6.75rem}.text-center{text-align:center}.text-left{text-align:left}.\\!font-sans{font-family:var(--font-sans)!important}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.\\!text-sm{font-size:var(--text-sm)!important;line-height:var(--tw-leading,var(--text-sm--line-height))!important}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\\[11px\\]{font-size:11px}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\\[0\\.3em\\]{--tw-tracking:.3em;letter-spacing:.3em}.tracking-\\[0\\.15em\\]{--tw-tracking:.15em;letter-spacing:.15em}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.\\!text-muted{color:var(--color-muted)!important}.\\!text-text{color:var(--color-text)!important}.text-accent{color:var(--color-accent)}.text-danger{color:var(--color-danger)}.text-dim{color:var(--color-dim)}.text-info{color:var(--color-info)}.text-muted{color:var(--color-muted)}.text-on-accent{color:var(--color-on-accent)}.text-revealed{color:var(--color-revealed)}.text-success{color:var(--color-success)}.text-text{color:var(--color-text)}.text-text\\/90{color:#eeeeeee6}@supports (color:color-mix(in lab, red, red)){.text-text\\/90{color:color-mix(in oklab, var(--color-text) 90%, transparent)}}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-black\\/50{--tw-shadow-color:#00000080}@supports (color:color-mix(in lab, red, red)){.shadow-black\\/50{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 50%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-black\\/60{--tw-shadow-color:#0009}@supports (color:color-mix(in lab, red, red)){.shadow-black\\/60{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 60%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-black\\/70{--tw-shadow-color:#000000b3}@supports (color:color-mix(in lab, red, red)){.shadow-black\\/70{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 70%, transparent) var(--tw-shadow-alpha), transparent)}}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-\\[2px\\]{--tw-backdrop-blur:blur(2px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition-\\[stroke-dashoffset\\]{transition-property:stroke-dashoffset;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-1000{--tw-duration:1s;transition-duration:1s}.ease-linear{--tw-ease:linear;transition-timing-function:linear}.\\[-webkit-text-security\\:disc\\]{-webkit-text-security:disc}.\\[image-rendering\\:pixelated\\]{image-rendering:pixelated}@media (hover:hover){.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}}.group-data-\\[selected\\=true\\]\\:text-accent:is(:where(.group)[data-selected=true] *){color:var(--color-accent)}.placeholder\\:text-dim::placeholder{color:var(--color-dim)}.last\\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.hover\\:border-accent:hover{border-color:var(--color-accent)}.hover\\:border-border-focus:hover{border-color:var(--color-border-focus)}.hover\\:bg-accent\\/90:hover{background-color:#ffd700e6}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-accent\\/90:hover{background-color:color-mix(in oklab, var(--color-accent) 90%, transparent)}}.hover\\:bg-danger\\/20:hover{background-color:#f553}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-danger\\/20:hover{background-color:color-mix(in oklab, var(--color-danger) 20%, transparent)}}.hover\\:bg-selection:hover{background-color:var(--color-selection)}.hover\\:bg-selection\\/50:hover{background-color:#22222280}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-selection\\/50:hover{background-color:color-mix(in oklab, var(--color-selection) 50%, transparent)}}.hover\\:bg-selection\\/60:hover{background-color:#2229}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-selection\\/60:hover{background-color:color-mix(in oklab, var(--color-selection) 60%, transparent)}}.hover\\:text-accent:hover{color:var(--color-accent)}.hover\\:text-danger:hover{color:var(--color-danger)}.hover\\:text-revealed:hover{color:var(--color-revealed)}.hover\\:text-text:hover{color:var(--color-text)}.hover\\:underline:hover{text-decoration-line:underline}}.focus\\:border-accent:focus{border-color:var(--color-accent)}.focus\\:border-border-focus:focus{border-color:var(--color-border-focus)}.focus\\:bg-input-focus:focus{background-color:var(--color-input-focus)}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\\:pointer-events-none:disabled{pointer-events:none}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:opacity-40:disabled{opacity:.4}.disabled\\:opacity-50:disabled{opacity:.5}.aria-invalid\\:border-danger[aria-invalid=true]{border-color:var(--color-danger)}.data-\\[selected\\=true\\]\\:bg-selection[data-selected=true]{background-color:var(--color-selection)}.data-\\[selected\\=true\\]\\:text-accent[data-selected=true]{color:var(--color-accent)}.data-\\[state\\=active\\]\\:bg-chip[data-state=active]{background-color:var(--color-chip)}.data-\\[state\\=active\\]\\:text-accent[data-state=active]{color:var(--color-accent)}.data-\\[state\\=checked\\]\\:translate-x-\\[18px\\][data-state=checked]{--tw-translate-x:18px;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\\[state\\=checked\\]\\:border-accent[data-state=checked]{border-color:var(--color-accent)}.data-\\[state\\=checked\\]\\:bg-accent[data-state=checked]{background-color:var(--color-accent)}.data-\\[state\\=checked\\]\\:bg-accent\\/25[data-state=checked]{background-color:#ffd70040}@supports (color:color-mix(in lab, red, red)){.data-\\[state\\=checked\\]\\:bg-accent\\/25[data-state=checked]{background-color:color-mix(in oklab, var(--color-accent) 25%, transparent)}}@media (width>=40rem){.sm\\:inline{display:inline}.sm\\:grid-cols-\\[1fr_9rem\\]{grid-template-columns:1fr 9rem}.sm\\:gap-4{gap:calc(var(--spacing) * 4)}.sm\\:p-4{padding:calc(var(--spacing) * 4)}}@media (width>=48rem){.md\\:flex{display:flex}.md\\:hidden{display:none}.md\\:grid-cols-\\[13rem_1fr\\]{grid-template-columns:13rem 1fr}.md\\:grid-cols-\\[minmax\\(16rem\\,22rem\\)_1fr\\]{grid-template-columns:minmax(16rem,22rem) 1fr}.md\\:grid-cols-\\[minmax\\(18rem\\,26rem\\)_1fr\\]{grid-template-columns:minmax(18rem,26rem) 1fr}.md\\:flex-col{flex-direction:column}}.\\[\\&_\\[cmdk-group-heading\\]\\]\\:px-2\\.5 [cmdk-group-heading]{padding-inline:calc(var(--spacing) * 2.5)}.\\[\\&_\\[cmdk-group-heading\\]\\]\\:pt-2\\.5 [cmdk-group-heading]{padding-top:calc(var(--spacing) * 2.5)}.\\[\\&_\\[cmdk-group-heading\\]\\]\\:pb-1 [cmdk-group-heading]{padding-bottom:var(--spacing)}.\\[\\&_\\[cmdk-group-heading\\]\\]\\:text-\\[11px\\] [cmdk-group-heading]{font-size:11px}.\\[\\&_\\[cmdk-group-heading\\]\\]\\:font-semibold [cmdk-group-heading]{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.\\[\\&_\\[cmdk-group-heading\\]\\]\\:tracking-wider [cmdk-group-heading]{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.\\[\\&_\\[cmdk-group-heading\\]\\]\\:text-dim [cmdk-group-heading]{color:var(--color-dim)}.\\[\\&_\\[cmdk-group-heading\\]\\]\\:uppercase [cmdk-group-heading]{text-transform:uppercase}.\\[\\&_\\[data-icon\\]\\]\\:\\!text-danger [data-icon]{color:var(--color-danger)!important}.\\[\\&_\\[data-icon\\]\\]\\:\\!text-success [data-icon]{color:var(--color-success)!important}.\\[\\&_svg\\]\\:size-3\\.5 svg{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.\\[\\&_svg\\]\\:size-4 svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\\[\\&_svg\\]\\:size-8 svg{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.\\[\\&_svg\\]\\:shrink-0 svg{flex-shrink:0}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade-in{0%{opacity:0;transform:translateY(2px)scale(.99)}to{opacity:1;transform:none}}\n/*$vite$:1*/</style>\n </head>\n <body>\n <div id="root"></div>\n </body>\n</html>\n';
|
|
3825
|
+
|
|
3826
|
+
// apps/web/src/server.ts
|
|
3827
|
+
import { resolve as resolve5 } from "path";
|
|
3828
|
+
function json2(data, status = 200, headers = {}) {
|
|
3829
|
+
return new Response(JSON.stringify(data), {
|
|
3830
|
+
headers: securityHeaders({ "content-type": "application/json; charset=utf-8", ...headers }),
|
|
3831
|
+
status
|
|
3832
|
+
});
|
|
3833
|
+
}
|
|
3834
|
+
function cookieValue(request, name) {
|
|
3835
|
+
for (const part of (request.headers.get("cookie") ?? "").split(";")) {
|
|
3836
|
+
const index = part.indexOf("=");
|
|
3837
|
+
if (index > 0 && part.slice(0, index).trim() === name)
|
|
3838
|
+
return part.slice(index + 1).trim();
|
|
3839
|
+
}
|
|
3840
|
+
return;
|
|
3841
|
+
}
|
|
3842
|
+
async function readBody(request, limit) {
|
|
3843
|
+
if (request.method === "GET" || request.method === "HEAD")
|
|
3844
|
+
return {};
|
|
3845
|
+
const length = Number(request.headers.get("content-length") ?? 0);
|
|
3846
|
+
if (length > limit)
|
|
3847
|
+
throw new HttpError(413, "Request is too large");
|
|
3848
|
+
const text = await request.text();
|
|
3849
|
+
if (text === "")
|
|
3850
|
+
return {};
|
|
3851
|
+
if (!(request.headers.get("content-type") ?? "").toLowerCase().startsWith("application/json")) {
|
|
3852
|
+
throw new HttpError(415, "Send JSON");
|
|
3853
|
+
}
|
|
3854
|
+
if (Buffer.byteLength(text) > limit)
|
|
3855
|
+
throw new HttpError(413, "Request is too large");
|
|
3856
|
+
let parsed;
|
|
3857
|
+
try {
|
|
3858
|
+
parsed = JSON.parse(text);
|
|
3859
|
+
} catch {
|
|
3860
|
+
throw new HttpError(400, "Malformed JSON");
|
|
3861
|
+
}
|
|
3862
|
+
if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed))
|
|
3863
|
+
throw new HttpError(400, "Send a JSON object");
|
|
3864
|
+
return parsed;
|
|
3865
|
+
}
|
|
3866
|
+
function errorStatus(error) {
|
|
3867
|
+
if (error instanceof HttpError)
|
|
3868
|
+
return { status: error.status, message: error.message };
|
|
3869
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
3870
|
+
if (error instanceof Error && error.name === "VaultTamperedError")
|
|
3871
|
+
return { status: 409, message };
|
|
3872
|
+
if (/not found/i.test(message))
|
|
3873
|
+
return { status: 404, message };
|
|
3874
|
+
return { status: 400, message };
|
|
3875
|
+
}
|
|
3876
|
+
function bindAllowed(host) {
|
|
3877
|
+
if (isLoopbackHost(host))
|
|
3878
|
+
return true;
|
|
3879
|
+
return process.env.AUTHO_WEB_CONTAINER === "1" && (host === "0.0.0.0" || host === "::");
|
|
3880
|
+
}
|
|
3881
|
+
function publicPort() {
|
|
3882
|
+
const value = Number(process.env.AUTHO_WEB_PUBLIC_PORT);
|
|
3883
|
+
return Number.isInteger(value) && value > 0 && value < 65536 ? value : null;
|
|
3884
|
+
}
|
|
3885
|
+
function createWebServer(options = {}) {
|
|
3886
|
+
const host = options.host ?? "localhost";
|
|
3887
|
+
if (!bindAllowed(host)) {
|
|
3888
|
+
throw new Error(`The web UI only listens on this machine (localhost); refusing --host ${host}`);
|
|
3889
|
+
}
|
|
3890
|
+
const vaultPath = resolve5(options.vaultPath ?? defaultVaultPath());
|
|
3891
|
+
const requestedPort = options.port ?? numberPreference("webPort");
|
|
3892
|
+
const sessions = new SessionStore({
|
|
3893
|
+
idleMs: () => numberPreference("idleLockSeconds") * 1000,
|
|
3894
|
+
onAdminEnd: (handle) => handle.close()
|
|
3895
|
+
});
|
|
3896
|
+
const ctx = { sessions, throttle: new UnlockThrottle, vaultPath };
|
|
3897
|
+
let hosts = allowedHosts(requestedPort);
|
|
3898
|
+
let cookieName = `autho_session_${requestedPort}`;
|
|
3899
|
+
function sessionCookie(session) {
|
|
3900
|
+
const base = `${cookieName}=${session?.id ?? ""}; Path=/; HttpOnly; SameSite=Strict`;
|
|
3901
|
+
return session ? base : `${base}; Max-Age=0`;
|
|
3902
|
+
}
|
|
3903
|
+
function page() {
|
|
3904
|
+
const nonce = newToken(16);
|
|
3905
|
+
return new Response(withNonce(UI_HTML, nonce), {
|
|
3906
|
+
headers: securityHeaders({ "content-security-policy": pageCsp(nonce), "content-type": "text/html; charset=utf-8" })
|
|
3907
|
+
});
|
|
3908
|
+
}
|
|
3909
|
+
async function api(request, url) {
|
|
3910
|
+
if (!sameOrigin(request, hosts) || request.headers.get(REQUEST_HEADER) !== "1") {
|
|
3911
|
+
return json2({ error: "Cross-origin request refused" }, 403);
|
|
3912
|
+
}
|
|
3913
|
+
const match = matchRoute(request.method, url.pathname);
|
|
3914
|
+
if (match === null)
|
|
3915
|
+
return json2({ error: "Not found" }, 404);
|
|
3916
|
+
if (match === "method")
|
|
3917
|
+
return json2({ error: "Method not allowed" }, 405);
|
|
3918
|
+
const sessionId = cookieValue(request, cookieName);
|
|
3919
|
+
const session = sessions.touch(sessionId, request.headers.get(CSRF_HEADER));
|
|
3920
|
+
if (match.route.auth && !session) {
|
|
3921
|
+
return json2({ error: "Locked" }, 401, { "set-cookie": sessionCookie(null) });
|
|
3922
|
+
}
|
|
3923
|
+
try {
|
|
3924
|
+
const body = await readBody(request, url.pathname === "/api/import" ? MAX_IMPORT_BODY : MAX_BODY);
|
|
3925
|
+
const reply = await match.route.handler(ctx, { body, params: match.params, query: url.searchParams, session });
|
|
3926
|
+
const headers = {};
|
|
3927
|
+
if (reply.session === "ended") {
|
|
3928
|
+
sessions.end(sessionId);
|
|
3929
|
+
headers["set-cookie"] = sessionCookie(null);
|
|
3930
|
+
} else if (reply.session) {
|
|
3931
|
+
sessions.end(sessionId);
|
|
3932
|
+
headers["set-cookie"] = sessionCookie(reply.session);
|
|
3933
|
+
}
|
|
3934
|
+
return json2({ data: reply.data }, reply.status ?? 200, headers);
|
|
3935
|
+
} catch (error) {
|
|
3936
|
+
const { status, message } = errorStatus(error);
|
|
3937
|
+
return json2({ error: message }, status, error instanceof HttpError ? error.headers : {});
|
|
3938
|
+
}
|
|
3939
|
+
}
|
|
3940
|
+
async function fetch2(request) {
|
|
3941
|
+
if (!hostAllowed(request, hosts)) {
|
|
3942
|
+
return new Response("Unknown host", { headers: securityHeaders({ "content-type": "text/plain" }), status: 421 });
|
|
3943
|
+
}
|
|
3944
|
+
const url = new URL(request.url);
|
|
3945
|
+
if (url.pathname.startsWith("/api/"))
|
|
3946
|
+
return api(request, url);
|
|
3947
|
+
if (request.method !== "GET" && request.method !== "HEAD")
|
|
3948
|
+
return json2({ error: "Method not allowed" }, 405);
|
|
3949
|
+
if (url.pathname === "/health")
|
|
3950
|
+
return json2({ ok: true });
|
|
3951
|
+
if (url.pathname === "/" || url.pathname === "/index.html")
|
|
3952
|
+
return page();
|
|
3953
|
+
return json2({ error: "Not found" }, 404);
|
|
3954
|
+
}
|
|
3955
|
+
const servers = [];
|
|
3956
|
+
const primaryHost = host === "localhost" ? "127.0.0.1" : host;
|
|
3957
|
+
const serveOptions = {
|
|
3958
|
+
fetch: fetch2,
|
|
3959
|
+
error: () => json2({ error: "Internal error" }, 500),
|
|
3960
|
+
maxRequestBodySize: MAX_IMPORT_BODY + 1024
|
|
3961
|
+
};
|
|
3962
|
+
servers.push(Bun.serve({ ...serveOptions, hostname: primaryHost, port: requestedPort }));
|
|
3963
|
+
const port = servers[0].port;
|
|
3964
|
+
if (host === "localhost") {
|
|
3965
|
+
try {
|
|
3966
|
+
servers.push(Bun.serve({ ...serveOptions, hostname: "::1", port }));
|
|
3967
|
+
} catch {}
|
|
3968
|
+
}
|
|
3969
|
+
const exposed = publicPort();
|
|
3970
|
+
hosts = exposed === null ? allowedHosts(port) : new Set([...allowedHosts(port), ...allowedHosts(exposed)]);
|
|
3971
|
+
cookieName = `autho_session_${port}`;
|
|
3972
|
+
const sweeper = setInterval(() => sessions.sweep(), SWEEP_MS);
|
|
3973
|
+
sweeper.unref?.();
|
|
3974
|
+
return {
|
|
3975
|
+
port,
|
|
3976
|
+
url: `http://localhost:${exposed ?? port}`,
|
|
3977
|
+
stop() {
|
|
3978
|
+
clearInterval(sweeper);
|
|
3979
|
+
sessions.endAll();
|
|
3980
|
+
for (const server of servers)
|
|
3981
|
+
server.stop(true);
|
|
3982
|
+
}
|
|
3983
|
+
};
|
|
3984
|
+
}
|
|
3985
|
+
async function startWebServer(options = {}) {
|
|
3986
|
+
const server = createWebServer(options);
|
|
3987
|
+
const shutdown = () => {
|
|
3988
|
+
server.stop();
|
|
3989
|
+
process.exit(0);
|
|
3990
|
+
};
|
|
3991
|
+
process.on("SIGINT", shutdown);
|
|
3992
|
+
process.on("SIGTERM", shutdown);
|
|
3993
|
+
console.log(`Autho web UI: ${server.url}`);
|
|
3994
|
+
console.log('Open it with "localhost" (not 127.0.0.1) so passkeys work. Ctrl+C stops it and locks the vault.');
|
|
3995
|
+
await new Promise(() => {});
|
|
3996
|
+
}
|
|
3997
|
+
var MAX_BODY, MAX_IMPORT_BODY, SWEEP_MS = 15000;
|
|
3998
|
+
var init_server = __esm(() => {
|
|
3999
|
+
init_src3();
|
|
4000
|
+
init_api();
|
|
4001
|
+
init_security();
|
|
4002
|
+
init_sessions();
|
|
4003
|
+
MAX_BODY = 64 * 1024;
|
|
4004
|
+
MAX_IMPORT_BODY = 8 * 1024 * 1024;
|
|
4005
|
+
});
|
|
4006
|
+
|
|
3113
4007
|
// apps/cli/src/tui/theme.ts
|
|
3114
4008
|
function typeLabel(type) {
|
|
3115
4009
|
switch (type) {
|
|
@@ -3722,9 +4616,9 @@ function SecretForm({ session, editing, onDone, onCancel, setHints, revealMs })
|
|
|
3722
4616
|
return;
|
|
3723
4617
|
}
|
|
3724
4618
|
if (focus === "type") {
|
|
3725
|
-
if (key.name === "left"
|
|
4619
|
+
if (key.name === "left")
|
|
3726
4620
|
cycleType(-1);
|
|
3727
|
-
else if (key.name === "right" || key.name === "
|
|
4621
|
+
else if (key.name === "right" || key.name === "space")
|
|
3728
4622
|
cycleType(1);
|
|
3729
4623
|
else if (isEnter(key))
|
|
3730
4624
|
moveFocus(1);
|
|
@@ -3936,12 +4830,12 @@ function CommandPalette({ commands, onClose }) {
|
|
|
3936
4830
|
onClose();
|
|
3937
4831
|
return;
|
|
3938
4832
|
}
|
|
3939
|
-
if (key.name === "up"
|
|
4833
|
+
if (key.name === "up") {
|
|
3940
4834
|
key.preventDefault();
|
|
3941
4835
|
setIndex(Math.max(0, current - 1));
|
|
3942
4836
|
return;
|
|
3943
4837
|
}
|
|
3944
|
-
if (key.name === "down"
|
|
4838
|
+
if (key.name === "down") {
|
|
3945
4839
|
key.preventDefault();
|
|
3946
4840
|
setIndex(Math.min(results.length - 1, current + 1));
|
|
3947
4841
|
return;
|
|
@@ -4103,13 +4997,13 @@ var init_palette = __esm(() => {
|
|
|
4103
4997
|
});
|
|
4104
4998
|
|
|
4105
4999
|
// apps/cli/src/tui/settings.tsx
|
|
4106
|
-
import { existsSync as
|
|
5000
|
+
import { existsSync as existsSync6, writeFileSync as writeFileSync2 } from "fs";
|
|
4107
5001
|
import { homedir as homedir2 } from "os";
|
|
4108
|
-
import { dirname as dirname3, join as
|
|
5002
|
+
import { dirname as dirname3, join as join4, resolve as resolve6 } from "path";
|
|
4109
5003
|
import { useKeyboard as useKeyboard4, useTerminalDimensions as useTerminalDimensions3 } from "@opentui/react";
|
|
4110
5004
|
import { useCallback, useEffect as useEffect4, useMemo as useMemo3, useRef as useRef5, useState as useState4 } from "react";
|
|
4111
5005
|
import { jsx as jsx4, jsxs as jsxs4, Fragment } from "@opentui/react/jsx-runtime";
|
|
4112
|
-
function SettingsScreen({ vaultPath, setHints, onBack, passkeyRunner = runPasskeyCeremony }) {
|
|
5006
|
+
function SettingsScreen({ vaultPath, setHints, onBack, passkeyRunner = runPasskeyCeremony, web }) {
|
|
4113
5007
|
const app = useApp();
|
|
4114
5008
|
const { width, height } = useTerminalDimensions3();
|
|
4115
5009
|
const [section, setSection] = useState4("Storage" /* Storage */);
|
|
@@ -4312,7 +5206,7 @@ function SettingsScreen({ vaultPath, setHints, onBack, passkeyRunner = runPasske
|
|
|
4312
5206
|
color: status.recoveryAt ? theme.success : theme.muted,
|
|
4313
5207
|
help: "A file that unlocks the vault if you forget the password. Making a new one replaces the old one",
|
|
4314
5208
|
verb: status.recoveryAt ? "replace" : "create",
|
|
4315
|
-
run: () => withAdmin(() => open({ kind: "recoveryPath" }, [
|
|
5209
|
+
run: () => withAdmin(() => open({ kind: "recoveryPath" }, [join4(homedir2(), "autho-recovery.txt"), ""]))
|
|
4316
5210
|
});
|
|
4317
5211
|
if (status.recoveryAt) {
|
|
4318
5212
|
rows.push({
|
|
@@ -4330,12 +5224,20 @@ function SettingsScreen({ vaultPath, setHints, onBack, passkeyRunner = runPasske
|
|
|
4330
5224
|
}
|
|
4331
5225
|
return rows;
|
|
4332
5226
|
};
|
|
5227
|
+
const webRows = () => web ? [{
|
|
5228
|
+
id: "web",
|
|
5229
|
+
label: "Web UI",
|
|
5230
|
+
value: web.url ?? web.note,
|
|
5231
|
+
color: web.url ? theme.text : theme.dim,
|
|
5232
|
+
help: web.url ? `${web.note}; open it in a browser and unlock there. Ctrl+C copies the address` : 'Turn on "Web UI with TUI" (or run `autho web serve`) to use the browser UI',
|
|
5233
|
+
copy: web.url ?? undefined
|
|
5234
|
+
}] : [];
|
|
4333
5235
|
const aboutRows = () => [
|
|
4334
5236
|
{ id: "version", label: "autho", value: package_default.version, help: "Installed version" },
|
|
4335
5237
|
{ id: "runtime", label: "Runtime", value: `Bun ${Bun.version} \xB7 ${process.platform}`, help: "" },
|
|
4336
5238
|
{ id: "store", label: "OS secret store", value: osStore ? "available" : "off (AUTHO_DISABLE_OS_SECRETS)", color: osStore ? theme.text : theme.dim, help: "Used for the remembered password and the PIN" }
|
|
4337
5239
|
];
|
|
4338
|
-
const rows = section === "Storage" /* Storage */ ? storageRows() : section === "Security" /* Security */ ? securityRows() : section === "Behaviour" /* Behaviour */ ? BEHAVIOUR_KEYS.map(preferenceRow) : section === "Agents & services" /* Agents */ ? AGENT_KEYS.map(preferenceRow) : aboutRows();
|
|
5240
|
+
const rows = section === "Storage" /* Storage */ ? storageRows() : section === "Security" /* Security */ ? securityRows() : section === "Behaviour" /* Behaviour */ ? BEHAVIOUR_KEYS.map(preferenceRow) : section === "Agents & services" /* Agents */ ? [...AGENT_KEYS.map(preferenceRow), ...webRows()] : aboutRows();
|
|
4339
5241
|
const current = Math.min(rowIndex, rows.length - 1);
|
|
4340
5242
|
const row = rows[current];
|
|
4341
5243
|
const submit = () => {
|
|
@@ -4372,7 +5274,7 @@ function SettingsScreen({ vaultPath, setHints, onBack, passkeyRunner = runPasske
|
|
|
4372
5274
|
return;
|
|
4373
5275
|
case "vaultDir": {
|
|
4374
5276
|
const config = { ...loadConfig() };
|
|
4375
|
-
const target = first.trim() ?
|
|
5277
|
+
const target = first.trim() ? resolve6(first.trim()).replace(/\\/g, "/") : null;
|
|
4376
5278
|
if (target)
|
|
4377
5279
|
config.vaultDir = target;
|
|
4378
5280
|
else
|
|
@@ -4380,7 +5282,7 @@ function SettingsScreen({ vaultPath, setHints, onBack, passkeyRunner = runPasske
|
|
|
4380
5282
|
saveConfig(config);
|
|
4381
5283
|
setRevision((r) => r + 1);
|
|
4382
5284
|
close();
|
|
4383
|
-
const missing = target && !
|
|
5285
|
+
const missing = target && !existsSync6(join4(target, "vault.db"));
|
|
4384
5286
|
app.toast(missing ? "Saved \u2014 no vault.db there yet; restart autho and run `autho init`" : "Saved \u2014 restart autho to use it", missing ? "info" : "success");
|
|
4385
5287
|
return;
|
|
4386
5288
|
}
|
|
@@ -4440,12 +5342,12 @@ function SettingsScreen({ vaultPath, setHints, onBack, passkeyRunner = runPasske
|
|
|
4440
5342
|
registerPasskey(first.trim());
|
|
4441
5343
|
return;
|
|
4442
5344
|
case "recoveryPath": {
|
|
4443
|
-
const target =
|
|
4444
|
-
if (
|
|
5345
|
+
const target = resolve6(first.trim() || join4(homedir2(), "autho-recovery.txt"));
|
|
5346
|
+
if (existsSync6(target)) {
|
|
4445
5347
|
setError("That file already exists \u2014 pick another name");
|
|
4446
5348
|
return;
|
|
4447
5349
|
}
|
|
4448
|
-
if (!
|
|
5350
|
+
if (!existsSync6(dirname3(target))) {
|
|
4449
5351
|
setError("That folder does not exist");
|
|
4450
5352
|
return;
|
|
4451
5353
|
}
|
|
@@ -4535,11 +5437,9 @@ function SettingsScreen({ vaultPath, setHints, onBack, passkeyRunner = runPasske
|
|
|
4535
5437
|
if (focus === "nav") {
|
|
4536
5438
|
switch (key.name) {
|
|
4537
5439
|
case "up":
|
|
4538
|
-
case "k":
|
|
4539
5440
|
switchSection(-1);
|
|
4540
5441
|
return;
|
|
4541
5442
|
case "down":
|
|
4542
|
-
case "j":
|
|
4543
5443
|
switchSection(1);
|
|
4544
5444
|
return;
|
|
4545
5445
|
case "home":
|
|
@@ -4549,7 +5449,6 @@ function SettingsScreen({ vaultPath, setHints, onBack, passkeyRunner = runPasske
|
|
|
4549
5449
|
pickSection(SECTIONS[SECTIONS.length - 1]);
|
|
4550
5450
|
return;
|
|
4551
5451
|
case "right":
|
|
4552
|
-
case "l":
|
|
4553
5452
|
case "space":
|
|
4554
5453
|
setFocus("rows");
|
|
4555
5454
|
return;
|
|
@@ -4563,11 +5462,9 @@ function SettingsScreen({ vaultPath, setHints, onBack, passkeyRunner = runPasske
|
|
|
4563
5462
|
}
|
|
4564
5463
|
switch (key.name) {
|
|
4565
5464
|
case "up":
|
|
4566
|
-
case "k":
|
|
4567
5465
|
moveRow(-1);
|
|
4568
5466
|
return;
|
|
4569
5467
|
case "down":
|
|
4570
|
-
case "j":
|
|
4571
5468
|
moveRow(1);
|
|
4572
5469
|
return;
|
|
4573
5470
|
case "home":
|
|
@@ -4577,7 +5474,6 @@ function SettingsScreen({ vaultPath, setHints, onBack, passkeyRunner = runPasske
|
|
|
4577
5474
|
setRowIndex(rows.length - 1);
|
|
4578
5475
|
return;
|
|
4579
5476
|
case "left":
|
|
4580
|
-
case "h":
|
|
4581
5477
|
case "escape":
|
|
4582
5478
|
setFocus("nav");
|
|
4583
5479
|
return;
|
|
@@ -4938,7 +5834,7 @@ var init_settings2 = __esm(() => {
|
|
|
4938
5834
|
init_util();
|
|
4939
5835
|
SECTIONS = ["Storage" /* Storage */, "Security" /* Security */, "Behaviour" /* Behaviour */, "Agents & services" /* Agents */, "About" /* About */];
|
|
4940
5836
|
BEHAVIOUR_KEYS = ["revealSeconds", "clipboardClearSeconds", "idleLockSeconds", "passwordLength", "passwordSymbols", "mouse"];
|
|
4941
|
-
AGENT_KEYS = ["defaultLeaseTtl", "daemonTtlSeconds", "webPort"];
|
|
5837
|
+
AGENT_KEYS = ["defaultLeaseTtl", "daemonTtlSeconds", "webPort", "webWithTui"];
|
|
4942
5838
|
LIVE_TIMINGS = {
|
|
4943
5839
|
revealSeconds: "revealMs",
|
|
4944
5840
|
clipboardClearSeconds: "clipboardClearMs",
|
|
@@ -5305,24 +6201,203 @@ var init_unlock = __esm(() => {
|
|
|
5305
6201
|
init_theme();
|
|
5306
6202
|
});
|
|
5307
6203
|
|
|
5308
|
-
// apps/cli/src/tui/
|
|
6204
|
+
// apps/cli/src/tui/links.tsx
|
|
5309
6205
|
import { useKeyboard as useKeyboard6, useTerminalDimensions as useTerminalDimensions4 } from "@opentui/react";
|
|
5310
|
-
import {
|
|
5311
|
-
import { jsx as jsx6, jsxs as jsxs6
|
|
6206
|
+
import { useMemo as useMemo5, useRef as useRef7, useState as useState6 } from "react";
|
|
6207
|
+
import { jsx as jsx6, jsxs as jsxs6 } from "@opentui/react/jsx-runtime";
|
|
6208
|
+
function LinkPicker({ primary, entries, linkedIds, onToggle, onClose }) {
|
|
6209
|
+
const { width, height } = useTerminalDimensions4();
|
|
6210
|
+
const [query, setQuery] = useState6("");
|
|
6211
|
+
const [index, setIndex] = useState6(0);
|
|
6212
|
+
const latestQuery = useRef7("");
|
|
6213
|
+
const candidates = useMemo5(() => entries.filter((e) => e.id !== primary.id), [entries, primary.id]);
|
|
6214
|
+
const search = (q) => fuzzyFilter(candidates, q, (e) => [e.name, e.username, e.url, typeLabel(e.type)]);
|
|
6215
|
+
const results = useMemo5(() => search(query), [candidates, query]);
|
|
6216
|
+
const current = Math.min(index, Math.max(0, results.length - 1));
|
|
6217
|
+
useKeyboard6((key) => {
|
|
6218
|
+
if (key.name === "escape") {
|
|
6219
|
+
key.preventDefault();
|
|
6220
|
+
onClose();
|
|
6221
|
+
return;
|
|
6222
|
+
}
|
|
6223
|
+
if (key.name === "up") {
|
|
6224
|
+
key.preventDefault();
|
|
6225
|
+
setIndex(Math.max(0, current - 1));
|
|
6226
|
+
return;
|
|
6227
|
+
}
|
|
6228
|
+
if (key.name === "down") {
|
|
6229
|
+
key.preventDefault();
|
|
6230
|
+
setIndex(Math.min(results.length - 1, current + 1));
|
|
6231
|
+
return;
|
|
6232
|
+
}
|
|
6233
|
+
if (key.name === "pageup") {
|
|
6234
|
+
key.preventDefault();
|
|
6235
|
+
setIndex(Math.max(0, current - 10));
|
|
6236
|
+
return;
|
|
6237
|
+
}
|
|
6238
|
+
if (key.name === "pagedown") {
|
|
6239
|
+
key.preventDefault();
|
|
6240
|
+
setIndex(Math.min(results.length - 1, current + 10));
|
|
6241
|
+
return;
|
|
6242
|
+
}
|
|
6243
|
+
if (isEnter(key)) {
|
|
6244
|
+
key.preventDefault();
|
|
6245
|
+
const fresh = latestQuery.current === query ? results : search(latestQuery.current);
|
|
6246
|
+
const entry = fresh[latestQuery.current === query ? current : 0];
|
|
6247
|
+
if (entry)
|
|
6248
|
+
onToggle(entry);
|
|
6249
|
+
}
|
|
6250
|
+
});
|
|
6251
|
+
const boxWidth = Math.min(72, Math.max(30, width - 4));
|
|
6252
|
+
const rows = Math.max(3, Math.min(14, height - 8));
|
|
6253
|
+
const offset = Math.max(0, Math.min(current - Math.floor(rows / 2), results.length - rows));
|
|
6254
|
+
const visible = results.slice(offset, offset + rows);
|
|
6255
|
+
const inner = boxWidth - 4;
|
|
6256
|
+
return /* @__PURE__ */ jsx6("box", {
|
|
6257
|
+
position: "absolute",
|
|
6258
|
+
top: 2,
|
|
6259
|
+
left: Math.max(0, Math.floor((width - boxWidth) / 2)),
|
|
6260
|
+
width: boxWidth,
|
|
6261
|
+
zIndex: 100,
|
|
6262
|
+
children: /* @__PURE__ */ jsxs6("box", {
|
|
6263
|
+
flexDirection: "column",
|
|
6264
|
+
border: true,
|
|
6265
|
+
borderStyle: "rounded",
|
|
6266
|
+
borderColor: theme.borderFocus,
|
|
6267
|
+
backgroundColor: theme.panel,
|
|
6268
|
+
paddingX: 1,
|
|
6269
|
+
title: ` Link to ${truncate(primary.name, 40)} `,
|
|
6270
|
+
titleColor: theme.accent,
|
|
6271
|
+
titleAlignment: "center",
|
|
6272
|
+
children: [
|
|
6273
|
+
/* @__PURE__ */ jsxs6("box", {
|
|
6274
|
+
flexDirection: "row",
|
|
6275
|
+
height: 1,
|
|
6276
|
+
gap: 1,
|
|
6277
|
+
children: [
|
|
6278
|
+
/* @__PURE__ */ jsx6("text", {
|
|
6279
|
+
fg: theme.accent,
|
|
6280
|
+
children: /* @__PURE__ */ jsx6("strong", {
|
|
6281
|
+
children: "\u203A"
|
|
6282
|
+
})
|
|
6283
|
+
}),
|
|
6284
|
+
/* @__PURE__ */ jsx6(TextField, {
|
|
6285
|
+
value: query,
|
|
6286
|
+
onChange: (v) => {
|
|
6287
|
+
latestQuery.current = v;
|
|
6288
|
+
setQuery(v);
|
|
6289
|
+
setIndex(0);
|
|
6290
|
+
},
|
|
6291
|
+
focused: true,
|
|
6292
|
+
placeholder: "search secrets to link"
|
|
6293
|
+
})
|
|
6294
|
+
]
|
|
6295
|
+
}),
|
|
6296
|
+
/* @__PURE__ */ jsxs6("box", {
|
|
6297
|
+
flexDirection: "column",
|
|
6298
|
+
marginTop: 1,
|
|
6299
|
+
children: [
|
|
6300
|
+
visible.length === 0 ? /* @__PURE__ */ jsx6("text", {
|
|
6301
|
+
fg: theme.dim,
|
|
6302
|
+
children: "No matching secrets"
|
|
6303
|
+
}) : null,
|
|
6304
|
+
visible.map((entry, i) => {
|
|
6305
|
+
const on = offset + i === current;
|
|
6306
|
+
const linked = linkedIds.has(entry.id);
|
|
6307
|
+
const badge = typeBadge(entry.type);
|
|
6308
|
+
const name = truncate(entry.name, Math.max(4, inner - 6));
|
|
6309
|
+
return /* @__PURE__ */ jsx6("box", {
|
|
6310
|
+
flexDirection: "row",
|
|
6311
|
+
height: 1,
|
|
6312
|
+
backgroundColor: on ? theme.selection : undefined,
|
|
6313
|
+
onMouseDown: (event) => {
|
|
6314
|
+
event.preventDefault();
|
|
6315
|
+
onToggle(entry);
|
|
6316
|
+
},
|
|
6317
|
+
onMouseOver: () => setIndex(offset + i),
|
|
6318
|
+
children: /* @__PURE__ */ jsxs6("text", {
|
|
6319
|
+
children: [
|
|
6320
|
+
/* @__PURE__ */ jsx6("span", {
|
|
6321
|
+
fg: linked ? theme.success : theme.dim,
|
|
6322
|
+
children: linked ? " \u2713 " : " "
|
|
6323
|
+
}),
|
|
6324
|
+
/* @__PURE__ */ jsxs6("span", {
|
|
6325
|
+
fg: badge.color,
|
|
6326
|
+
children: [
|
|
6327
|
+
badge.glyph,
|
|
6328
|
+
" "
|
|
6329
|
+
]
|
|
6330
|
+
}),
|
|
6331
|
+
on ? /* @__PURE__ */ jsx6("strong", {
|
|
6332
|
+
fg: theme.accent,
|
|
6333
|
+
children: name
|
|
6334
|
+
}) : /* @__PURE__ */ jsx6("span", {
|
|
6335
|
+
fg: theme.text,
|
|
6336
|
+
children: name
|
|
6337
|
+
})
|
|
6338
|
+
]
|
|
6339
|
+
})
|
|
6340
|
+
}, entry.id);
|
|
6341
|
+
})
|
|
6342
|
+
]
|
|
6343
|
+
}),
|
|
6344
|
+
/* @__PURE__ */ jsxs6("text", {
|
|
6345
|
+
marginTop: 1,
|
|
6346
|
+
children: [
|
|
6347
|
+
/* @__PURE__ */ jsx6(Chip, {
|
|
6348
|
+
label: "\u2191\u2193"
|
|
6349
|
+
}),
|
|
6350
|
+
/* @__PURE__ */ jsx6("span", {
|
|
6351
|
+
fg: theme.muted,
|
|
6352
|
+
children: " move "
|
|
6353
|
+
}),
|
|
6354
|
+
/* @__PURE__ */ jsx6(Chip, {
|
|
6355
|
+
label: "enter"
|
|
6356
|
+
}),
|
|
6357
|
+
/* @__PURE__ */ jsx6("span", {
|
|
6358
|
+
fg: theme.muted,
|
|
6359
|
+
children: " link/unlink "
|
|
6360
|
+
}),
|
|
6361
|
+
/* @__PURE__ */ jsx6(Chip, {
|
|
6362
|
+
label: "esc"
|
|
6363
|
+
}),
|
|
6364
|
+
/* @__PURE__ */ jsx6("span", {
|
|
6365
|
+
fg: theme.muted,
|
|
6366
|
+
children: " done"
|
|
6367
|
+
})
|
|
6368
|
+
]
|
|
6369
|
+
})
|
|
6370
|
+
]
|
|
6371
|
+
})
|
|
6372
|
+
});
|
|
6373
|
+
}
|
|
6374
|
+
var init_links = __esm(() => {
|
|
6375
|
+
init_components();
|
|
6376
|
+
init_theme();
|
|
6377
|
+
init_util();
|
|
6378
|
+
});
|
|
6379
|
+
|
|
6380
|
+
// apps/cli/src/tui/vault.tsx
|
|
6381
|
+
import { useKeyboard as useKeyboard7, useTerminalDimensions as useTerminalDimensions5 } from "@opentui/react";
|
|
6382
|
+
import { useCallback as useCallback3, useEffect as useEffect6, useMemo as useMemo6, useState as useState7 } from "react";
|
|
6383
|
+
import { jsx as jsx7, jsxs as jsxs7, Fragment as Fragment2 } from "@opentui/react/jsx-runtime";
|
|
5312
6384
|
function VaultScreen({ session, initialSelectedId, onCreate, onEdit, onSettings, setHints, revealMs }) {
|
|
5313
6385
|
const app = useApp();
|
|
5314
|
-
const { width, height } =
|
|
6386
|
+
const { width, height } = useTerminalDimensions5();
|
|
5315
6387
|
const wide = width >= WIDE_MIN_COLUMNS;
|
|
5316
|
-
const [entries, setEntries] =
|
|
5317
|
-
const [query, setQuery] =
|
|
5318
|
-
const [pane, setPane] =
|
|
5319
|
-
const [actionIndex, setActionIndex] =
|
|
6388
|
+
const [entries, setEntries] = useState7([]);
|
|
6389
|
+
const [query, setQuery] = useState7("");
|
|
6390
|
+
const [pane, setPane] = useState7("list");
|
|
6391
|
+
const [actionIndex, setActionIndex] = useState7(0);
|
|
5320
6392
|
const searchFocused = pane === "search";
|
|
5321
|
-
const [selectedId, setSelectedId] =
|
|
5322
|
-
const [detailOpen, setDetailOpen] =
|
|
5323
|
-
const [revealed, setRevealed] =
|
|
5324
|
-
const [otp, setOtp] =
|
|
5325
|
-
const [confirmDelete, setConfirmDelete] =
|
|
6393
|
+
const [selectedId, setSelectedId] = useState7(initialSelectedId ?? null);
|
|
6394
|
+
const [detailOpen, setDetailOpen] = useState7(false);
|
|
6395
|
+
const [revealed, setRevealed] = useState7(null);
|
|
6396
|
+
const [otp, setOtp] = useState7(null);
|
|
6397
|
+
const [confirmDelete, setConfirmDelete] = useState7(false);
|
|
6398
|
+
const [links, setLinks] = useState7(null);
|
|
6399
|
+
const [linkPickerOpen, setLinkPickerOpen] = useState7(false);
|
|
6400
|
+
const [linkedOtp, setLinkedOtp] = useState7(null);
|
|
5326
6401
|
const reload = useCallback3(() => {
|
|
5327
6402
|
try {
|
|
5328
6403
|
setEntries(session.listSecretIndex());
|
|
@@ -5332,7 +6407,7 @@ function VaultScreen({ session, initialSelectedId, onCreate, onEdit, onSettings,
|
|
|
5332
6407
|
}
|
|
5333
6408
|
}, [session, app]);
|
|
5334
6409
|
useEffect6(reload, [reload]);
|
|
5335
|
-
const filtered =
|
|
6410
|
+
const filtered = useMemo6(() => fuzzyFilter(entries, query, (e) => [e.name, e.username, e.url, e.description, typeLabel(e.type)]), [entries, query]);
|
|
5336
6411
|
const selectedIndex = Math.max(0, filtered.findIndex((e) => e.id === selectedId));
|
|
5337
6412
|
const selected = filtered[selectedIndex] ?? null;
|
|
5338
6413
|
useEffect6(() => {
|
|
@@ -5343,10 +6418,25 @@ function VaultScreen({ session, initialSelectedId, onCreate, onEdit, onSettings,
|
|
|
5343
6418
|
useEffect6(() => {
|
|
5344
6419
|
setRevealed((r) => r && r.id !== selected?.id ? null : r);
|
|
5345
6420
|
setOtp((o) => o && o.id !== selected?.id ? null : o);
|
|
6421
|
+
setLinkedOtp(null);
|
|
5346
6422
|
setConfirmDelete(false);
|
|
5347
6423
|
setActionIndex(0);
|
|
5348
6424
|
}, [selected?.id]);
|
|
5349
|
-
const
|
|
6425
|
+
const loadLinks = useCallback3((id) => {
|
|
6426
|
+
if (!id) {
|
|
6427
|
+
setLinks(null);
|
|
6428
|
+
return;
|
|
6429
|
+
}
|
|
6430
|
+
try {
|
|
6431
|
+
setLinks(session.getLinks(id));
|
|
6432
|
+
} catch (e) {
|
|
6433
|
+
app.toast(e instanceof Error ? e.message : String(e), "error");
|
|
6434
|
+
setLinks(null);
|
|
6435
|
+
}
|
|
6436
|
+
}, [session, app]);
|
|
6437
|
+
useEffect6(() => loadLinks(selected?.id), [loadLinks, selected?.id, selected?.linkCount]);
|
|
6438
|
+
const linkedOtpSecret = links?.links.find((l) => l.type === "otp") ?? null;
|
|
6439
|
+
const now = useNow(1000, Boolean(revealed || otp || linkedOtp));
|
|
5350
6440
|
useEffect6(() => {
|
|
5351
6441
|
if (revealed && now >= revealed.until) {
|
|
5352
6442
|
setRevealed(null);
|
|
@@ -5360,22 +6450,56 @@ function VaultScreen({ session, initialSelectedId, onCreate, onEdit, onSettings,
|
|
|
5360
6450
|
return null;
|
|
5361
6451
|
}
|
|
5362
6452
|
}, [session, app]);
|
|
5363
|
-
const
|
|
6453
|
+
const makeOtp = useCallback3((id, options) => {
|
|
5364
6454
|
try {
|
|
5365
|
-
const result = session.generateOtp(
|
|
5366
|
-
|
|
5367
|
-
setOtp(next);
|
|
5368
|
-
return next;
|
|
6455
|
+
const result = session.generateOtp(id, options);
|
|
6456
|
+
return { id, code: result.code, expiresAt: Date.parse(result.expiresAt) };
|
|
5369
6457
|
} catch (e) {
|
|
5370
6458
|
app.toast(e instanceof Error ? e.message : String(e), "error");
|
|
5371
6459
|
return null;
|
|
5372
6460
|
}
|
|
5373
6461
|
}, [session, app]);
|
|
6462
|
+
const generateOtp = useCallback3((entry, options) => {
|
|
6463
|
+
const next = makeOtp(entry.id, options);
|
|
6464
|
+
if (next)
|
|
6465
|
+
setOtp(next);
|
|
6466
|
+
return next;
|
|
6467
|
+
}, [makeOtp]);
|
|
5374
6468
|
useEffect6(() => {
|
|
5375
6469
|
if (otp && selected && otp.id === selected.id && now >= otp.expiresAt) {
|
|
5376
6470
|
generateOtp(selected, { audit: false });
|
|
5377
6471
|
}
|
|
5378
6472
|
}, [now, otp, selected, generateOtp]);
|
|
6473
|
+
useEffect6(() => {
|
|
6474
|
+
if (linkedOtp && linkedOtp.id === linkedOtpSecret?.id && now >= linkedOtp.expiresAt) {
|
|
6475
|
+
setLinkedOtp(makeOtp(linkedOtp.id, { audit: false }));
|
|
6476
|
+
}
|
|
6477
|
+
}, [now, linkedOtp, linkedOtpSecret?.id, makeOtp]);
|
|
6478
|
+
const copyLinkedOtp = useCallback3(() => {
|
|
6479
|
+
if (!linkedOtpSecret) {
|
|
6480
|
+
app.toast("No OTP linked to this secret", "info");
|
|
6481
|
+
return;
|
|
6482
|
+
}
|
|
6483
|
+
const code = makeOtp(linkedOtpSecret.id);
|
|
6484
|
+
if (!code)
|
|
6485
|
+
return;
|
|
6486
|
+
setLinkedOtp(code);
|
|
6487
|
+
app.copy("OTP code", code.code, { secret: true });
|
|
6488
|
+
}, [app, linkedOtpSecret, makeOtp]);
|
|
6489
|
+
const toggleLink = useCallback3((primary, target) => {
|
|
6490
|
+
const linked = links?.links.some((l) => l.id === target.id) ?? false;
|
|
6491
|
+
try {
|
|
6492
|
+
if (linked)
|
|
6493
|
+
session.unlinkSecrets(primary.id, target.id);
|
|
6494
|
+
else
|
|
6495
|
+
session.linkSecrets(primary.id, target.id);
|
|
6496
|
+
app.toast(linked ? `Unlinked ${target.name}` : `Linked ${target.name}`, "info");
|
|
6497
|
+
} catch (e) {
|
|
6498
|
+
app.toast(e instanceof Error ? e.message : String(e), "error");
|
|
6499
|
+
}
|
|
6500
|
+
reload();
|
|
6501
|
+
loadLinks(primary.id);
|
|
6502
|
+
}, [links, session, app, reload, loadLinks]);
|
|
5379
6503
|
const copyPrimary = useCallback3((entry) => {
|
|
5380
6504
|
if (!entry)
|
|
5381
6505
|
return;
|
|
@@ -5418,10 +6542,12 @@ function VaultScreen({ session, initialSelectedId, onCreate, onEdit, onSettings,
|
|
|
5418
6542
|
setRevealed({ id: entry.id, value, until: Date.now() + revealMs });
|
|
5419
6543
|
}
|
|
5420
6544
|
}, [revealed, readValue, revealMs]);
|
|
5421
|
-
const remove = useCallback3((entry) => {
|
|
6545
|
+
const remove = useCallback3((entry, withLinked = false) => {
|
|
5422
6546
|
try {
|
|
5423
|
-
session.removeSecret(entry.id);
|
|
5424
|
-
|
|
6547
|
+
const { removedLinked, keptLinked } = session.removeSecret(entry.id, { withLinked });
|
|
6548
|
+
const also = removedLinked.length ? ` and ${removedLinked.map((l) => l.name).join(", ")}` : "";
|
|
6549
|
+
const kept = keptLinked.length ? ` \xB7 kept ${keptLinked.map((l) => l.name).join(", ")} (linked elsewhere)` : "";
|
|
6550
|
+
app.toast(`Deleted "${entry.name}"${also}${kept}`);
|
|
5425
6551
|
setConfirmDelete(false);
|
|
5426
6552
|
setDetailOpen(false);
|
|
5427
6553
|
setPane("list");
|
|
@@ -5451,6 +6577,7 @@ function VaultScreen({ session, initialSelectedId, onCreate, onEdit, onSettings,
|
|
|
5451
6577
|
...selected.type !== "otp" ? [{ id: "reveal", hotkey: "s", label: revealed?.id === selected.id ? "hide" : "reveal", color: theme.revealed, run: () => toggleReveal(selected) }] : [],
|
|
5452
6578
|
...selected.url && selected.type !== "otp" ? [{ id: "open", hotkey: "o", label: "open", color: theme.info, run: () => open(selected) }] : [],
|
|
5453
6579
|
{ id: "edit", hotkey: "e", label: "edit", color: theme.accent, run: () => onEdit(selected.id) },
|
|
6580
|
+
{ id: "link", hotkey: "l", label: "link", color: theme.info, run: () => setLinkPickerOpen(true) },
|
|
5454
6581
|
{ id: "delete", hotkey: "d", label: "delete", color: theme.danger, run: () => setConfirmDelete(true) }
|
|
5455
6582
|
] : [];
|
|
5456
6583
|
const currentAction = Math.min(actionIndex, Math.max(0, actions.length - 1));
|
|
@@ -5472,13 +6599,15 @@ function VaultScreen({ session, initialSelectedId, onCreate, onEdit, onSettings,
|
|
|
5472
6599
|
while (PANES[index] === "actions" && !selected);
|
|
5473
6600
|
focusPane(PANES[index]);
|
|
5474
6601
|
};
|
|
5475
|
-
|
|
5476
|
-
if (!app.active || key.ctrl || key.meta)
|
|
6602
|
+
useKeyboard7((key) => {
|
|
6603
|
+
if (!app.active || key.ctrl || key.meta || linkPickerOpen)
|
|
5477
6604
|
return;
|
|
5478
6605
|
if (confirmDelete) {
|
|
5479
6606
|
key.preventDefault();
|
|
5480
6607
|
if ((key.name === "y" || isEnter(key)) && selected)
|
|
5481
6608
|
remove(selected);
|
|
6609
|
+
else if (key.name === "a" && selected && links?.links.length)
|
|
6610
|
+
remove(selected, true);
|
|
5482
6611
|
else if (key.name === "n" || key.name === "escape")
|
|
5483
6612
|
setConfirmDelete(false);
|
|
5484
6613
|
return;
|
|
@@ -5498,13 +6627,15 @@ function VaultScreen({ session, initialSelectedId, onCreate, onEdit, onSettings,
|
|
|
5498
6627
|
}
|
|
5499
6628
|
return;
|
|
5500
6629
|
}
|
|
6630
|
+
if (key.name === "l" && selected) {
|
|
6631
|
+
setLinkPickerOpen(true);
|
|
6632
|
+
return;
|
|
6633
|
+
}
|
|
5501
6634
|
switch (key.name) {
|
|
5502
6635
|
case "up":
|
|
5503
|
-
case "k":
|
|
5504
6636
|
move(-1);
|
|
5505
6637
|
return;
|
|
5506
6638
|
case "down":
|
|
5507
|
-
case "j":
|
|
5508
6639
|
move(1);
|
|
5509
6640
|
return;
|
|
5510
6641
|
case "pageup":
|
|
@@ -5513,9 +6644,6 @@ function VaultScreen({ session, initialSelectedId, onCreate, onEdit, onSettings,
|
|
|
5513
6644
|
case "pagedown":
|
|
5514
6645
|
move(listHeight);
|
|
5515
6646
|
return;
|
|
5516
|
-
case "g":
|
|
5517
|
-
move(key.shift ? filtered.length : -filtered.length);
|
|
5518
|
-
return;
|
|
5519
6647
|
case "home":
|
|
5520
6648
|
move(-filtered.length);
|
|
5521
6649
|
return;
|
|
@@ -5557,14 +6685,12 @@ function VaultScreen({ session, initialSelectedId, onCreate, onEdit, onSettings,
|
|
|
5557
6685
|
if (pane === "actions") {
|
|
5558
6686
|
switch (key.name) {
|
|
5559
6687
|
case "left":
|
|
5560
|
-
case "h":
|
|
5561
6688
|
if (currentAction === 0)
|
|
5562
6689
|
focusPane("list");
|
|
5563
6690
|
else
|
|
5564
6691
|
setActionIndex((i) => Math.max(0, Math.min(i, actions.length - 1) - 1));
|
|
5565
6692
|
return;
|
|
5566
6693
|
case "right":
|
|
5567
|
-
case "l":
|
|
5568
6694
|
setActionIndex((i) => Math.min(actions.length - 1, i + 1));
|
|
5569
6695
|
return;
|
|
5570
6696
|
case "space":
|
|
@@ -5576,7 +6702,7 @@ function VaultScreen({ session, initialSelectedId, onCreate, onEdit, onSettings,
|
|
|
5576
6702
|
return;
|
|
5577
6703
|
}
|
|
5578
6704
|
} else {
|
|
5579
|
-
if (key.name === "right"
|
|
6705
|
+
if (key.name === "right") {
|
|
5580
6706
|
focusPane("actions");
|
|
5581
6707
|
return;
|
|
5582
6708
|
}
|
|
@@ -5611,13 +6737,16 @@ function VaultScreen({ session, initialSelectedId, onCreate, onEdit, onSettings,
|
|
|
5611
6737
|
case "e":
|
|
5612
6738
|
onEdit(selected.id);
|
|
5613
6739
|
return;
|
|
6740
|
+
case "t":
|
|
6741
|
+
copyLinkedOtp();
|
|
6742
|
+
return;
|
|
5614
6743
|
case "d":
|
|
5615
6744
|
case "delete":
|
|
5616
6745
|
setConfirmDelete(true);
|
|
5617
6746
|
return;
|
|
5618
6747
|
}
|
|
5619
6748
|
});
|
|
5620
|
-
const commands =
|
|
6749
|
+
const commands = useMemo6(() => {
|
|
5621
6750
|
const list = [
|
|
5622
6751
|
{ id: "new", title: "New secret", hint: "n", group: "Vault", run: onCreate },
|
|
5623
6752
|
{ id: "search", title: "Search secrets", hint: "/", group: "Vault", run: () => setPane("search") },
|
|
@@ -5625,11 +6754,26 @@ function VaultScreen({ session, initialSelectedId, onCreate, onEdit, onSettings,
|
|
|
5625
6754
|
];
|
|
5626
6755
|
if (selected) {
|
|
5627
6756
|
const name = selected.name;
|
|
5628
|
-
list.unshift({ id: "copy", title: `Copy ${selected.type === "otp" ? "OTP code" : selected.type === "note" ? "note" : "password"} \u2014 ${name}`, hint: "c / enter", group: "Selected", run: () => copyPrimary(selected) }, { id: "copy-user", title: `Copy username \u2014 ${name}`, hint: "u", group: "Selected", run: () => copyUsername(selected) }, { id: "reveal", title: `${revealed ? "Hide" : "Reveal"} value \u2014 ${name}`, hint: "s", group: "Selected", run: () => toggleReveal(selected) }, { id: "edit", title: `Edit \u2014 ${name}`, hint: "e", group: "Selected", run: () => onEdit(selected.id) }, { id: "delete", title: `Delete \u2014 ${name}`, hint: "d", group: "Selected", run: () => setConfirmDelete(true) });
|
|
6757
|
+
list.unshift({ id: "copy", title: `Copy ${selected.type === "otp" ? "OTP code" : selected.type === "note" ? "note" : "password"} \u2014 ${name}`, hint: "c / enter", group: "Selected", run: () => copyPrimary(selected) }, { id: "copy-user", title: `Copy username \u2014 ${name}`, hint: "u", group: "Selected", run: () => copyUsername(selected) }, { id: "reveal", title: `${revealed ? "Hide" : "Reveal"} value \u2014 ${name}`, hint: "s", group: "Selected", run: () => toggleReveal(selected) }, { id: "edit", title: `Edit \u2014 ${name}`, hint: "e", group: "Selected", run: () => onEdit(selected.id) }, { id: "link", title: `Link secrets \u2014 ${name}`, hint: "l", group: "Selected", run: () => setLinkPickerOpen(true) }, { id: "delete", title: `Delete \u2014 ${name}`, hint: "d", group: "Selected", run: () => setConfirmDelete(true) });
|
|
6758
|
+
if (linkedOtpSecret) {
|
|
6759
|
+
list.splice(1, 0, { id: "copy-linked-otp", title: `Copy ${linkedOtpSecret.name} code \u2014 ${name}`, hint: "t", group: "Selected", run: copyLinkedOtp });
|
|
6760
|
+
}
|
|
5629
6761
|
if (selected.url) {
|
|
5630
6762
|
list.splice(2, 0, { id: "copy-url", title: `Copy URL \u2014 ${name}`, hint: "w", group: "Selected", run: () => copyUrl(selected) }, { id: "open-url", title: `Open ${hostOf(selected.url)} in browser`, hint: selected.type === "otp" ? undefined : "o", group: "Selected", run: () => open(selected) });
|
|
5631
6763
|
}
|
|
5632
6764
|
}
|
|
6765
|
+
for (const link of [...links?.links ?? [], ...links?.linkedFrom ?? []]) {
|
|
6766
|
+
list.push({
|
|
6767
|
+
id: `goto-linked:${link.id}`,
|
|
6768
|
+
title: `Go to ${link.name}`,
|
|
6769
|
+
hint: typeLabel(link.type),
|
|
6770
|
+
group: "Linked",
|
|
6771
|
+
run: () => {
|
|
6772
|
+
setQuery("");
|
|
6773
|
+
setSelectedId(link.id);
|
|
6774
|
+
}
|
|
6775
|
+
});
|
|
6776
|
+
}
|
|
5633
6777
|
for (const entry of entries) {
|
|
5634
6778
|
list.push({
|
|
5635
6779
|
id: `goto:${entry.id}`,
|
|
@@ -5645,7 +6789,7 @@ function VaultScreen({ session, initialSelectedId, onCreate, onEdit, onSettings,
|
|
|
5645
6789
|
});
|
|
5646
6790
|
}
|
|
5647
6791
|
return list;
|
|
5648
|
-
}, [entries, selected, revealed, onCreate, onEdit, reload, copyPrimary, copyUsername, copyUrl, toggleReveal]);
|
|
6792
|
+
}, [entries, selected, revealed, links, linkedOtpSecret, onCreate, onEdit, reload, copyPrimary, copyUsername, copyUrl, toggleReveal, copyLinkedOtp]);
|
|
5649
6793
|
useScreenContext(commands, selected ? {
|
|
5650
6794
|
label: selected.type === "otp" ? "OTP code" : selected.type === "note" ? "Note" : "Password",
|
|
5651
6795
|
read: () => selected.type === "otp" ? generateOtp(selected)?.code ?? null : readValue(selected),
|
|
@@ -5654,7 +6798,7 @@ function VaultScreen({ session, initialSelectedId, onCreate, onEdit, onSettings,
|
|
|
5654
6798
|
useEffect6(() => {
|
|
5655
6799
|
let hints;
|
|
5656
6800
|
if (confirmDelete)
|
|
5657
|
-
hints = [["y", "delete"], ["n/esc", "cancel"]];
|
|
6801
|
+
hints = links?.links.length ? [["y", "delete"], ["a", "with linked"], ["n/esc", "cancel"]] : [["y", "delete"], ["n/esc", "cancel"]];
|
|
5658
6802
|
else if (searchFocused)
|
|
5659
6803
|
hints = [["type", "filter"], ["enter/\u2193", "results"], ["esc", "clear"]];
|
|
5660
6804
|
else if (pane === "actions")
|
|
@@ -5664,11 +6808,11 @@ function VaultScreen({ session, initialSelectedId, onCreate, onEdit, onSettings,
|
|
|
5664
6808
|
else
|
|
5665
6809
|
hints = [["\u2191\u2193", "move"], ["enter", "copy"], ["\u2192/tab", "actions"], ["/", "search"], ["n", "new"], ["q", "quit"]];
|
|
5666
6810
|
setHints(hints);
|
|
5667
|
-
}, [confirmDelete, searchFocused, pane, showDetail, setHints]);
|
|
6811
|
+
}, [confirmDelete, links, searchFocused, pane, showDetail, setHints]);
|
|
5668
6812
|
const listWidth = wide ? Math.max(32, Math.floor(width * 0.38)) : width;
|
|
5669
6813
|
const offset = Math.max(0, Math.min(selectedIndex - Math.floor(listHeight / 2), filtered.length - listHeight));
|
|
5670
6814
|
const visible = filtered.slice(offset, offset + listHeight);
|
|
5671
|
-
const list = /* @__PURE__ */
|
|
6815
|
+
const list = /* @__PURE__ */ jsx7("box", {
|
|
5672
6816
|
flexDirection: "column",
|
|
5673
6817
|
width: wide ? listWidth : "100%",
|
|
5674
6818
|
flexShrink: 0,
|
|
@@ -5678,9 +6822,9 @@ function VaultScreen({ session, initialSelectedId, onCreate, onEdit, onSettings,
|
|
|
5678
6822
|
title: ` ${filtered.length}/${entries.length} secrets `,
|
|
5679
6823
|
titleColor: theme.muted,
|
|
5680
6824
|
onMouseScroll: (event) => move(event.scroll?.direction === "up" ? -3 : 3),
|
|
5681
|
-
children: filtered.length === 0 ? /* @__PURE__ */
|
|
6825
|
+
children: filtered.length === 0 ? /* @__PURE__ */ jsx7("box", {
|
|
5682
6826
|
padding: 1,
|
|
5683
|
-
children: /* @__PURE__ */
|
|
6827
|
+
children: /* @__PURE__ */ jsx7("text", {
|
|
5684
6828
|
fg: theme.dim,
|
|
5685
6829
|
children: entries.length === 0 ? "No secrets yet \u2014 press n to add one." : `No match for "${query}".`
|
|
5686
6830
|
})
|
|
@@ -5690,7 +6834,7 @@ function VaultScreen({ session, initialSelectedId, onCreate, onEdit, onSettings,
|
|
|
5690
6834
|
const sub = entry.username ?? (entry.url ? hostOf(entry.url) : "");
|
|
5691
6835
|
const room = listWidth - 6;
|
|
5692
6836
|
const name = truncate(entry.name, Math.max(8, Math.min(room, Math.ceil(room * 0.55))));
|
|
5693
|
-
return /* @__PURE__ */
|
|
6837
|
+
return /* @__PURE__ */ jsx7("box", {
|
|
5694
6838
|
flexDirection: "row",
|
|
5695
6839
|
height: 1,
|
|
5696
6840
|
paddingX: 1,
|
|
@@ -5704,66 +6848,75 @@ function VaultScreen({ session, initialSelectedId, onCreate, onEdit, onSettings,
|
|
|
5704
6848
|
setPane("actions");
|
|
5705
6849
|
}
|
|
5706
6850
|
},
|
|
5707
|
-
children: /* @__PURE__ */
|
|
6851
|
+
children: /* @__PURE__ */ jsxs7("text", {
|
|
5708
6852
|
children: [
|
|
5709
|
-
/* @__PURE__ */
|
|
6853
|
+
/* @__PURE__ */ jsxs7("span", {
|
|
5710
6854
|
fg: badge.color,
|
|
5711
6855
|
children: [
|
|
5712
6856
|
badge.glyph,
|
|
5713
6857
|
" "
|
|
5714
6858
|
]
|
|
5715
6859
|
}),
|
|
5716
|
-
isSelected ? /* @__PURE__ */
|
|
6860
|
+
isSelected ? /* @__PURE__ */ jsx7("strong", {
|
|
5717
6861
|
fg: theme.accent,
|
|
5718
6862
|
children: name
|
|
5719
|
-
}) : /* @__PURE__ */
|
|
6863
|
+
}) : /* @__PURE__ */ jsx7("span", {
|
|
5720
6864
|
fg: theme.text,
|
|
5721
6865
|
children: name
|
|
5722
6866
|
}),
|
|
5723
|
-
/* @__PURE__ */
|
|
6867
|
+
entry.linkCount ? /* @__PURE__ */ jsxs7("span", {
|
|
6868
|
+
fg: theme.muted,
|
|
6869
|
+
children: [
|
|
6870
|
+
" \xB7",
|
|
6871
|
+
entry.linkCount
|
|
6872
|
+
]
|
|
6873
|
+
}) : null,
|
|
6874
|
+
/* @__PURE__ */ jsx7("span", {
|
|
5724
6875
|
fg: theme.dim,
|
|
5725
|
-
children: sub ? ` ${truncate(sub, Math.max(0, room - name.length - 2))}` : ""
|
|
6876
|
+
children: sub ? ` ${truncate(sub, Math.max(0, room - name.length - 2 - (entry.linkCount ? 3 : 0)))}` : ""
|
|
5726
6877
|
})
|
|
5727
6878
|
]
|
|
5728
6879
|
})
|
|
5729
6880
|
}, entry.id);
|
|
5730
6881
|
})
|
|
5731
6882
|
});
|
|
5732
|
-
const detail = selected ? /* @__PURE__ */
|
|
6883
|
+
const detail = selected ? /* @__PURE__ */ jsx7(Detail, {
|
|
5733
6884
|
entry: selected,
|
|
5734
6885
|
revealed: revealed?.id === selected.id ? revealed : null,
|
|
5735
6886
|
otp: otp?.id === selected.id ? otp : null,
|
|
5736
6887
|
now,
|
|
5737
6888
|
confirmDelete,
|
|
6889
|
+
links,
|
|
6890
|
+
linkedOtp,
|
|
5738
6891
|
actions,
|
|
5739
6892
|
focusedAction: pane === "actions" ? currentAction : null
|
|
5740
|
-
}) : /* @__PURE__ */
|
|
6893
|
+
}) : /* @__PURE__ */ jsx7("box", {
|
|
5741
6894
|
flexGrow: 1,
|
|
5742
6895
|
border: true,
|
|
5743
6896
|
borderStyle: "rounded",
|
|
5744
6897
|
borderColor: theme.border,
|
|
5745
6898
|
padding: 1,
|
|
5746
|
-
children: /* @__PURE__ */
|
|
6899
|
+
children: /* @__PURE__ */ jsx7("text", {
|
|
5747
6900
|
fg: theme.dim,
|
|
5748
6901
|
children: "Nothing selected."
|
|
5749
6902
|
})
|
|
5750
6903
|
});
|
|
5751
|
-
return /* @__PURE__ */
|
|
6904
|
+
return /* @__PURE__ */ jsxs7("box", {
|
|
5752
6905
|
flexDirection: "column",
|
|
5753
6906
|
flexGrow: 1,
|
|
5754
6907
|
width: "100%",
|
|
5755
6908
|
children: [
|
|
5756
|
-
/* @__PURE__ */
|
|
6909
|
+
/* @__PURE__ */ jsxs7("box", {
|
|
5757
6910
|
flexDirection: "row",
|
|
5758
6911
|
paddingX: 1,
|
|
5759
6912
|
height: 1,
|
|
5760
6913
|
children: [
|
|
5761
|
-
/* @__PURE__ */
|
|
6914
|
+
/* @__PURE__ */ jsx7("text", {
|
|
5762
6915
|
bg: searchFocused ? theme.accent : theme.chip,
|
|
5763
6916
|
fg: searchFocused ? theme.onAccent : theme.muted,
|
|
5764
6917
|
children: " / "
|
|
5765
6918
|
}),
|
|
5766
|
-
/* @__PURE__ */
|
|
6919
|
+
/* @__PURE__ */ jsx7(TextField, {
|
|
5767
6920
|
value: query,
|
|
5768
6921
|
onChange: setQuery,
|
|
5769
6922
|
focused: searchFocused && app.active,
|
|
@@ -5771,7 +6924,7 @@ function VaultScreen({ session, initialSelectedId, onCreate, onEdit, onSettings,
|
|
|
5771
6924
|
})
|
|
5772
6925
|
]
|
|
5773
6926
|
}),
|
|
5774
|
-
/* @__PURE__ */
|
|
6927
|
+
/* @__PURE__ */ jsxs7("box", {
|
|
5775
6928
|
flexDirection: "row",
|
|
5776
6929
|
flexGrow: 1,
|
|
5777
6930
|
gap: 1,
|
|
@@ -5779,21 +6932,69 @@ function VaultScreen({ session, initialSelectedId, onCreate, onEdit, onSettings,
|
|
|
5779
6932
|
wide || !detailOpen ? list : null,
|
|
5780
6933
|
showDetail ? detail : null
|
|
5781
6934
|
]
|
|
5782
|
-
})
|
|
6935
|
+
}),
|
|
6936
|
+
linkPickerOpen && selected ? /* @__PURE__ */ jsx7(LinkPicker, {
|
|
6937
|
+
primary: selected,
|
|
6938
|
+
entries,
|
|
6939
|
+
linkedIds: new Set(links?.links.map((l) => l.id) ?? []),
|
|
6940
|
+
onToggle: (target) => toggleLink(selected, target),
|
|
6941
|
+
onClose: () => setLinkPickerOpen(false)
|
|
6942
|
+
}) : null
|
|
6943
|
+
]
|
|
6944
|
+
});
|
|
6945
|
+
}
|
|
6946
|
+
function LinkedRow({ link, otp, now }) {
|
|
6947
|
+
const badge = typeBadge(link.type);
|
|
6948
|
+
const seconds = otp ? Math.max(0, Math.ceil((otp.expiresAt - now) / 1000)) : 0;
|
|
6949
|
+
return /* @__PURE__ */ jsxs7("text", {
|
|
6950
|
+
children: [
|
|
6951
|
+
/* @__PURE__ */ jsxs7("span", {
|
|
6952
|
+
fg: badge.color,
|
|
6953
|
+
children: [
|
|
6954
|
+
" ",
|
|
6955
|
+
badge.glyph,
|
|
6956
|
+
" "
|
|
6957
|
+
]
|
|
6958
|
+
}),
|
|
6959
|
+
/* @__PURE__ */ jsx7("span", {
|
|
6960
|
+
fg: theme.text,
|
|
6961
|
+
children: link.name
|
|
6962
|
+
}),
|
|
6963
|
+
link.type === "otp" ? otp ? /* @__PURE__ */ jsxs7(Fragment2, {
|
|
6964
|
+
children: [
|
|
6965
|
+
/* @__PURE__ */ jsx7("span", {
|
|
6966
|
+
fg: theme.success,
|
|
6967
|
+
children: /* @__PURE__ */ jsx7("strong", {
|
|
6968
|
+
children: ` ${otp.code.slice(0, 3)} ${otp.code.slice(3)}`
|
|
6969
|
+
})
|
|
6970
|
+
}),
|
|
6971
|
+
/* @__PURE__ */ jsxs7("span", {
|
|
6972
|
+
fg: seconds <= 5 ? theme.danger : theme.muted,
|
|
6973
|
+
children: [
|
|
6974
|
+
" ",
|
|
6975
|
+
seconds,
|
|
6976
|
+
"s"
|
|
6977
|
+
]
|
|
6978
|
+
})
|
|
6979
|
+
]
|
|
6980
|
+
}) : /* @__PURE__ */ jsx7("span", {
|
|
6981
|
+
fg: theme.dim,
|
|
6982
|
+
children: " press t for the code"
|
|
6983
|
+
}) : null
|
|
5783
6984
|
]
|
|
5784
6985
|
});
|
|
5785
6986
|
}
|
|
5786
6987
|
function valueName(type) {
|
|
5787
6988
|
return type === "note" ? "Note" : type === "otp" ? "Secret key" : "Password";
|
|
5788
6989
|
}
|
|
5789
|
-
function Detail({ entry, revealed, otp, now, confirmDelete, actions, focusedAction }) {
|
|
6990
|
+
function Detail({ entry, revealed, otp, now, confirmDelete, links, linkedOtp, actions, focusedAction }) {
|
|
5790
6991
|
const badge = typeBadge(entry.type);
|
|
5791
6992
|
const valueLabel = valueName(entry.type);
|
|
5792
6993
|
const revealSeconds = revealed ? Math.max(0, Math.ceil((revealed.until - now) / 1000)) : 0;
|
|
5793
6994
|
const otpSeconds = otp ? Math.max(0, Math.ceil((otp.expiresAt - now) / 1000)) : 0;
|
|
5794
6995
|
const otpBar = 10;
|
|
5795
6996
|
const otpFilled = Math.round(otpSeconds / 30 * otpBar);
|
|
5796
|
-
return /* @__PURE__ */
|
|
6997
|
+
return /* @__PURE__ */ jsxs7("box", {
|
|
5797
6998
|
flexDirection: "column",
|
|
5798
6999
|
flexGrow: 1,
|
|
5799
7000
|
border: true,
|
|
@@ -5804,51 +7005,51 @@ function Detail({ entry, revealed, otp, now, confirmDelete, actions, focusedActi
|
|
|
5804
7005
|
title: ` ${typeLabel(entry.type)} `,
|
|
5805
7006
|
titleColor: badge.color,
|
|
5806
7007
|
children: [
|
|
5807
|
-
/* @__PURE__ */
|
|
7008
|
+
/* @__PURE__ */ jsxs7("text", {
|
|
5808
7009
|
children: [
|
|
5809
|
-
/* @__PURE__ */
|
|
7010
|
+
/* @__PURE__ */ jsxs7("span", {
|
|
5810
7011
|
fg: badge.color,
|
|
5811
7012
|
children: [
|
|
5812
7013
|
badge.glyph,
|
|
5813
7014
|
" "
|
|
5814
7015
|
]
|
|
5815
7016
|
}),
|
|
5816
|
-
/* @__PURE__ */
|
|
7017
|
+
/* @__PURE__ */ jsx7("strong", {
|
|
5817
7018
|
fg: theme.accent,
|
|
5818
7019
|
children: entry.name
|
|
5819
7020
|
})
|
|
5820
7021
|
]
|
|
5821
7022
|
}),
|
|
5822
|
-
/* @__PURE__ */
|
|
7023
|
+
/* @__PURE__ */ jsxs7("box", {
|
|
5823
7024
|
flexDirection: "column",
|
|
5824
7025
|
children: [
|
|
5825
|
-
entry.type !== "note" ? /* @__PURE__ */
|
|
7026
|
+
entry.type !== "note" ? /* @__PURE__ */ jsx7(FieldRow, {
|
|
5826
7027
|
label: "Username",
|
|
5827
7028
|
value: entry.username ?? "\u2014",
|
|
5828
7029
|
color: entry.username ? theme.text : theme.dim
|
|
5829
7030
|
}) : null,
|
|
5830
|
-
/* @__PURE__ */
|
|
7031
|
+
/* @__PURE__ */ jsx7(FieldRow, {
|
|
5831
7032
|
label: valueLabel,
|
|
5832
7033
|
value: revealed ? revealed.value : MASK,
|
|
5833
7034
|
color: revealed ? theme.revealed : theme.dim
|
|
5834
7035
|
}),
|
|
5835
|
-
entry.url ? /* @__PURE__ */
|
|
7036
|
+
entry.url ? /* @__PURE__ */ jsx7(FieldRow, {
|
|
5836
7037
|
label: "URL",
|
|
5837
7038
|
value: entry.url,
|
|
5838
7039
|
color: theme.info
|
|
5839
7040
|
}) : null,
|
|
5840
|
-
entry.description ? /* @__PURE__ */
|
|
7041
|
+
entry.description ? /* @__PURE__ */ jsx7(FieldRow, {
|
|
5841
7042
|
label: "Notes",
|
|
5842
7043
|
value: entry.description
|
|
5843
7044
|
}) : null,
|
|
5844
|
-
/* @__PURE__ */
|
|
7045
|
+
/* @__PURE__ */ jsx7(FieldRow, {
|
|
5845
7046
|
label: "Updated",
|
|
5846
7047
|
value: entry.updatedAt.slice(0, 16).replace("T", " "),
|
|
5847
7048
|
color: theme.dim
|
|
5848
7049
|
})
|
|
5849
7050
|
]
|
|
5850
7051
|
}),
|
|
5851
|
-
entry.type === "otp" ? /* @__PURE__ */
|
|
7052
|
+
entry.type === "otp" ? /* @__PURE__ */ jsx7("box", {
|
|
5852
7053
|
flexDirection: "row",
|
|
5853
7054
|
border: true,
|
|
5854
7055
|
borderStyle: "rounded",
|
|
@@ -5856,26 +7057,26 @@ function Detail({ entry, revealed, otp, now, confirmDelete, actions, focusedActi
|
|
|
5856
7057
|
paddingX: 1,
|
|
5857
7058
|
gap: 2,
|
|
5858
7059
|
alignSelf: "flex-start",
|
|
5859
|
-
children: otp ? /* @__PURE__ */
|
|
7060
|
+
children: otp ? /* @__PURE__ */ jsxs7(Fragment2, {
|
|
5860
7061
|
children: [
|
|
5861
|
-
/* @__PURE__ */
|
|
7062
|
+
/* @__PURE__ */ jsx7("text", {
|
|
5862
7063
|
fg: theme.success,
|
|
5863
7064
|
selectable: true,
|
|
5864
|
-
children: /* @__PURE__ */
|
|
7065
|
+
children: /* @__PURE__ */ jsx7("strong", {
|
|
5865
7066
|
children: `${otp.code.slice(0, 3)} ${otp.code.slice(3)}`
|
|
5866
7067
|
})
|
|
5867
7068
|
}),
|
|
5868
|
-
/* @__PURE__ */
|
|
7069
|
+
/* @__PURE__ */ jsxs7("text", {
|
|
5869
7070
|
children: [
|
|
5870
|
-
/* @__PURE__ */
|
|
7071
|
+
/* @__PURE__ */ jsx7("span", {
|
|
5871
7072
|
fg: otpSeconds <= 5 ? theme.danger : theme.success,
|
|
5872
7073
|
children: "\u2588".repeat(otpFilled)
|
|
5873
7074
|
}),
|
|
5874
|
-
/* @__PURE__ */
|
|
7075
|
+
/* @__PURE__ */ jsx7("span", {
|
|
5875
7076
|
fg: theme.chip,
|
|
5876
7077
|
children: "\u2588".repeat(otpBar - otpFilled)
|
|
5877
7078
|
}),
|
|
5878
|
-
/* @__PURE__ */
|
|
7079
|
+
/* @__PURE__ */ jsxs7("span", {
|
|
5879
7080
|
fg: otpSeconds <= 5 ? theme.danger : theme.muted,
|
|
5880
7081
|
children: [
|
|
5881
7082
|
" ",
|
|
@@ -5886,12 +7087,38 @@ function Detail({ entry, revealed, otp, now, confirmDelete, actions, focusedActi
|
|
|
5886
7087
|
]
|
|
5887
7088
|
})
|
|
5888
7089
|
]
|
|
5889
|
-
}) : /* @__PURE__ */
|
|
7090
|
+
}) : /* @__PURE__ */ jsx7("text", {
|
|
5890
7091
|
fg: theme.dim,
|
|
5891
7092
|
children: "press o to show the code"
|
|
5892
7093
|
})
|
|
5893
7094
|
}) : null,
|
|
5894
|
-
|
|
7095
|
+
links && (links.links.length > 0 || links.linkedFrom.length > 0) ? /* @__PURE__ */ jsxs7("box", {
|
|
7096
|
+
flexDirection: "column",
|
|
7097
|
+
children: [
|
|
7098
|
+
links.links.length > 0 ? /* @__PURE__ */ jsx7("text", {
|
|
7099
|
+
fg: theme.muted,
|
|
7100
|
+
children: "Linked"
|
|
7101
|
+
}) : null,
|
|
7102
|
+
links.links.map((link) => /* @__PURE__ */ jsx7(LinkedRow, {
|
|
7103
|
+
link,
|
|
7104
|
+
otp: linkedOtp?.id === link.id ? linkedOtp : null,
|
|
7105
|
+
now
|
|
7106
|
+
}, link.id)),
|
|
7107
|
+
links.linkedFrom.length > 0 ? /* @__PURE__ */ jsxs7("text", {
|
|
7108
|
+
children: [
|
|
7109
|
+
/* @__PURE__ */ jsx7("span", {
|
|
7110
|
+
fg: theme.muted,
|
|
7111
|
+
children: "Linked from "
|
|
7112
|
+
}),
|
|
7113
|
+
/* @__PURE__ */ jsx7("span", {
|
|
7114
|
+
fg: theme.text,
|
|
7115
|
+
children: links.linkedFrom.map((l) => l.name).join(", ")
|
|
7116
|
+
})
|
|
7117
|
+
]
|
|
7118
|
+
}) : null
|
|
7119
|
+
]
|
|
7120
|
+
}) : null,
|
|
7121
|
+
revealed ? /* @__PURE__ */ jsxs7("text", {
|
|
5895
7122
|
fg: theme.dim,
|
|
5896
7123
|
children: [
|
|
5897
7124
|
"Visible for ",
|
|
@@ -5899,30 +7126,30 @@ function Detail({ entry, revealed, otp, now, confirmDelete, actions, focusedActi
|
|
|
5899
7126
|
"s \u2014 drag to select, ctrl+c to copy the selection."
|
|
5900
7127
|
]
|
|
5901
7128
|
}) : null,
|
|
5902
|
-
confirmDelete ? /* @__PURE__ */
|
|
7129
|
+
confirmDelete ? /* @__PURE__ */ jsx7("box", {
|
|
5903
7130
|
backgroundColor: theme.dangerBg,
|
|
5904
7131
|
paddingX: 1,
|
|
5905
|
-
children: /* @__PURE__ */
|
|
7132
|
+
children: /* @__PURE__ */ jsxs7("text", {
|
|
5906
7133
|
fg: theme.danger,
|
|
5907
7134
|
children: [
|
|
5908
|
-
/* @__PURE__ */
|
|
7135
|
+
/* @__PURE__ */ jsxs7("strong", {
|
|
5909
7136
|
children: [
|
|
5910
7137
|
'Delete "',
|
|
5911
7138
|
entry.name,
|
|
5912
7139
|
'" permanently?'
|
|
5913
7140
|
]
|
|
5914
7141
|
}),
|
|
5915
|
-
/* @__PURE__ */
|
|
7142
|
+
/* @__PURE__ */ jsx7("span", {
|
|
5916
7143
|
fg: theme.muted,
|
|
5917
|
-
children: " y = delete \xB7 n = cancel"
|
|
7144
|
+
children: links?.links.length ? ` y = only this \xB7 a = also its ${links.links.length} linked \xB7 n = cancel` : " y = delete \xB7 n = cancel"
|
|
5918
7145
|
})
|
|
5919
7146
|
]
|
|
5920
7147
|
})
|
|
5921
|
-
}) : /* @__PURE__ */
|
|
7148
|
+
}) : /* @__PURE__ */ jsx7("box", {
|
|
5922
7149
|
flexDirection: "row",
|
|
5923
7150
|
gap: 1,
|
|
5924
7151
|
flexWrap: "wrap",
|
|
5925
|
-
children: actions.map((action, i) => /* @__PURE__ */
|
|
7152
|
+
children: actions.map((action, i) => /* @__PURE__ */ jsx7(Button, {
|
|
5926
7153
|
hotkey: action.hotkey,
|
|
5927
7154
|
label: action.label,
|
|
5928
7155
|
onPress: action.run,
|
|
@@ -5937,37 +7164,38 @@ var PANES, WIDE_MIN_COLUMNS = 96;
|
|
|
5937
7164
|
var init_vault = __esm(() => {
|
|
5938
7165
|
init_components();
|
|
5939
7166
|
init_context();
|
|
7167
|
+
init_links();
|
|
5940
7168
|
init_theme();
|
|
5941
7169
|
init_util();
|
|
5942
7170
|
PANES = ["search", "list", "actions"];
|
|
5943
7171
|
});
|
|
5944
7172
|
|
|
5945
7173
|
// apps/cli/src/tui.tsx
|
|
5946
|
-
import { basename as
|
|
7174
|
+
import { basename as basename4 } from "path";
|
|
5947
7175
|
import { createCliRenderer } from "@opentui/core";
|
|
5948
|
-
import { createRoot, useKeyboard as
|
|
5949
|
-
import { useCallback as useCallback4, useEffect as useEffect7, useMemo as
|
|
5950
|
-
import { jsx as
|
|
5951
|
-
function App({ vaultPath, clipboard, revealMs: initialRevealMs, clipboardClearMs: initialClipboardClearMs, idleLockMs: initialIdleLockMs, onQuit, sessionSink, passkeyRunner }) {
|
|
7176
|
+
import { createRoot, useKeyboard as useKeyboard8, useRenderer, useSelectionHandler } from "@opentui/react";
|
|
7177
|
+
import { useCallback as useCallback4, useEffect as useEffect7, useMemo as useMemo7, useRef as useRef8, useState as useState8 } from "react";
|
|
7178
|
+
import { jsx as jsx8, jsxs as jsxs8 } from "@opentui/react/jsx-runtime";
|
|
7179
|
+
function App({ vaultPath, clipboard, revealMs: initialRevealMs, clipboardClearMs: initialClipboardClearMs, idleLockMs: initialIdleLockMs, onQuit, sessionSink, passkeyRunner, web }) {
|
|
5952
7180
|
const renderer = useRenderer();
|
|
5953
|
-
const [timings, setTimingsState] =
|
|
7181
|
+
const [timings, setTimingsState] = useState8({ revealMs: initialRevealMs, clipboardClearMs: initialClipboardClearMs, idleLockMs: initialIdleLockMs });
|
|
5954
7182
|
const { revealMs, clipboardClearMs, idleLockMs } = timings;
|
|
5955
7183
|
const setTimings = useCallback4((next) => setTimingsState((prev) => ({ ...prev, ...next })), []);
|
|
5956
|
-
const [route, setRoute] =
|
|
5957
|
-
const [session, setSession] =
|
|
5958
|
-
const [toastState, setToastState] =
|
|
5959
|
-
const [hints, setHints] =
|
|
5960
|
-
const [paletteOpen, setPaletteOpen] =
|
|
5961
|
-
const commandsRef =
|
|
5962
|
-
const copyTargetRef =
|
|
5963
|
-
const sessionRef =
|
|
7184
|
+
const [route, setRoute] = useState8({ name: "unlock" });
|
|
7185
|
+
const [session, setSession] = useState8(null);
|
|
7186
|
+
const [toastState, setToastState] = useState8(null);
|
|
7187
|
+
const [hints, setHints] = useState8([]);
|
|
7188
|
+
const [paletteOpen, setPaletteOpen] = useState8(false);
|
|
7189
|
+
const commandsRef = useRef8([]);
|
|
7190
|
+
const copyTargetRef = useRef8(null);
|
|
7191
|
+
const sessionRef = useRef8(null);
|
|
5964
7192
|
sessionRef.current = session;
|
|
5965
7193
|
if (sessionSink)
|
|
5966
7194
|
sessionSink.current = session;
|
|
5967
|
-
const lastCtrlC =
|
|
5968
|
-
const lastActivity =
|
|
5969
|
-
const toastTimer =
|
|
5970
|
-
const quitting =
|
|
7195
|
+
const lastCtrlC = useRef8(0);
|
|
7196
|
+
const lastActivity = useRef8(Date.now());
|
|
7197
|
+
const toastTimer = useRef8(null);
|
|
7198
|
+
const quitting = useRef8(false);
|
|
5971
7199
|
const toast = useCallback4((message, kind = "success") => {
|
|
5972
7200
|
if (toastTimer.current)
|
|
5973
7201
|
clearTimeout(toastTimer.current);
|
|
@@ -6001,7 +7229,7 @@ function App({ vaultPath, clipboard, revealMs: initialRevealMs, clipboardClearMs
|
|
|
6001
7229
|
onQuit();
|
|
6002
7230
|
}, [onQuit]);
|
|
6003
7231
|
const openPalette = useCallback4(() => setPaletteOpen(true), []);
|
|
6004
|
-
const api =
|
|
7232
|
+
const api = useMemo7(() => ({
|
|
6005
7233
|
active: !paletteOpen,
|
|
6006
7234
|
toast,
|
|
6007
7235
|
copy,
|
|
@@ -6039,7 +7267,7 @@ function App({ vaultPath, clipboard, revealMs: initialRevealMs, clipboardClearMs
|
|
|
6039
7267
|
}
|
|
6040
7268
|
toast("Press ctrl+c again to quit", "info");
|
|
6041
7269
|
}, [renderer, clipboard, clipboardClearMs, quit, toast]);
|
|
6042
|
-
|
|
7270
|
+
useKeyboard8((key) => {
|
|
6043
7271
|
lastActivity.current = Date.now();
|
|
6044
7272
|
if (!key.ctrl || key.meta)
|
|
6045
7273
|
return;
|
|
@@ -6102,10 +7330,10 @@ function App({ vaultPath, clipboard, revealMs: initialRevealMs, clipboardClearMs
|
|
|
6102
7330
|
const goSettings = useCallback4(() => setRoute({ name: "settings" }), []);
|
|
6103
7331
|
const globalHints = !session || route.name === "unlock" ? [] : route.name === "vault" ? [["ctrl+k", "commands"], [",", "settings"]] : [["ctrl+k", "commands"]];
|
|
6104
7332
|
const title = route.name === "unlock" ? "Locked" : route.name === "form" ? route.editing ? "Edit secret" : "New secret" : route.name === "settings" ? "Settings" : "Vault";
|
|
6105
|
-
const vaultName =
|
|
7333
|
+
const vaultName = basename4(vaultPath);
|
|
6106
7334
|
let screen;
|
|
6107
7335
|
if (route.name === "unlock" || !session) {
|
|
6108
|
-
screen = /* @__PURE__ */
|
|
7336
|
+
screen = /* @__PURE__ */ jsx8(UnlockScreen, {
|
|
6109
7337
|
vaultPath,
|
|
6110
7338
|
onUnlock,
|
|
6111
7339
|
setHints,
|
|
@@ -6113,7 +7341,7 @@ function App({ vaultPath, clipboard, revealMs: initialRevealMs, clipboardClearMs
|
|
|
6113
7341
|
passkeyRunner
|
|
6114
7342
|
}, `unlock:${route.name === "unlock" ? route.notice ?? "" : ""}`);
|
|
6115
7343
|
} else if (route.name === "form") {
|
|
6116
|
-
screen = /* @__PURE__ */
|
|
7344
|
+
screen = /* @__PURE__ */ jsx8(SecretForm, {
|
|
6117
7345
|
session,
|
|
6118
7346
|
editing: route.editing,
|
|
6119
7347
|
setHints,
|
|
@@ -6125,14 +7353,15 @@ function App({ vaultPath, clipboard, revealMs: initialRevealMs, clipboardClearMs
|
|
|
6125
7353
|
}
|
|
6126
7354
|
});
|
|
6127
7355
|
} else if (route.name === "settings") {
|
|
6128
|
-
screen = /* @__PURE__ */
|
|
7356
|
+
screen = /* @__PURE__ */ jsx8(SettingsScreen, {
|
|
6129
7357
|
vaultPath,
|
|
6130
7358
|
setHints,
|
|
6131
7359
|
onBack: goVault,
|
|
6132
|
-
passkeyRunner
|
|
7360
|
+
passkeyRunner,
|
|
7361
|
+
web
|
|
6133
7362
|
});
|
|
6134
7363
|
} else {
|
|
6135
|
-
screen = /* @__PURE__ */
|
|
7364
|
+
screen = /* @__PURE__ */ jsx8(VaultScreen, {
|
|
6136
7365
|
session,
|
|
6137
7366
|
initialSelectedId: route.focusId,
|
|
6138
7367
|
onCreate: () => setRoute({ name: "form", editing: null }),
|
|
@@ -6142,9 +7371,9 @@ function App({ vaultPath, clipboard, revealMs: initialRevealMs, clipboardClearMs
|
|
|
6142
7371
|
revealMs
|
|
6143
7372
|
}, route.focusId ?? "vault");
|
|
6144
7373
|
}
|
|
6145
|
-
return /* @__PURE__ */
|
|
7374
|
+
return /* @__PURE__ */ jsx8(AppContext.Provider, {
|
|
6146
7375
|
value: api,
|
|
6147
|
-
children: /* @__PURE__ */
|
|
7376
|
+
children: /* @__PURE__ */ jsxs8("box", {
|
|
6148
7377
|
flexDirection: "column",
|
|
6149
7378
|
width: "100%",
|
|
6150
7379
|
height: "100%",
|
|
@@ -6155,15 +7384,15 @@ function App({ vaultPath, clipboard, revealMs: initialRevealMs, clipboardClearMs
|
|
|
6155
7384
|
lastActivity.current = Date.now();
|
|
6156
7385
|
},
|
|
6157
7386
|
children: [
|
|
6158
|
-
/* @__PURE__ */
|
|
7387
|
+
/* @__PURE__ */ jsx8(Header, {
|
|
6159
7388
|
title,
|
|
6160
|
-
right: /* @__PURE__ */
|
|
7389
|
+
right: /* @__PURE__ */ jsxs8("text", {
|
|
6161
7390
|
fg: theme.dim,
|
|
6162
7391
|
children: [
|
|
6163
|
-
session ? /* @__PURE__ */
|
|
7392
|
+
session ? /* @__PURE__ */ jsx8("span", {
|
|
6164
7393
|
fg: theme.success,
|
|
6165
7394
|
children: "\u25CF unlocked"
|
|
6166
|
-
}) : /* @__PURE__ */
|
|
7395
|
+
}) : /* @__PURE__ */ jsx8("span", {
|
|
6167
7396
|
fg: theme.muted,
|
|
6168
7397
|
children: "\u25CB locked"
|
|
6169
7398
|
}),
|
|
@@ -6172,17 +7401,17 @@ function App({ vaultPath, clipboard, revealMs: initialRevealMs, clipboardClearMs
|
|
|
6172
7401
|
]
|
|
6173
7402
|
})
|
|
6174
7403
|
}),
|
|
6175
|
-
/* @__PURE__ */
|
|
7404
|
+
/* @__PURE__ */ jsx8("box", {
|
|
6176
7405
|
flexDirection: "column",
|
|
6177
7406
|
flexGrow: 1,
|
|
6178
7407
|
children: screen
|
|
6179
7408
|
}),
|
|
6180
|
-
/* @__PURE__ */
|
|
7409
|
+
/* @__PURE__ */ jsx8(StatusBar, {
|
|
6181
7410
|
hints,
|
|
6182
7411
|
pinned: globalHints,
|
|
6183
7412
|
toast: toastState
|
|
6184
7413
|
}),
|
|
6185
|
-
paletteOpen ? /* @__PURE__ */
|
|
7414
|
+
paletteOpen ? /* @__PURE__ */ jsx8(CommandPalette, {
|
|
6186
7415
|
commands: [...commandsRef.current, ...globalCommands],
|
|
6187
7416
|
onClose: () => setPaletteOpen(false)
|
|
6188
7417
|
}) : null
|
|
@@ -6197,32 +7426,48 @@ function safeRead(target) {
|
|
|
6197
7426
|
return null;
|
|
6198
7427
|
}
|
|
6199
7428
|
}
|
|
7429
|
+
function startCompanionWeb(vaultPath) {
|
|
7430
|
+
if (!booleanPreference("webWithTui"))
|
|
7431
|
+
return { server: null, status: { url: null, note: "off" } };
|
|
7432
|
+
try {
|
|
7433
|
+
const server = createWebServer({ vaultPath });
|
|
7434
|
+
return { server, status: { url: server.url, note: "running while the TUI is open" } };
|
|
7435
|
+
} catch (error) {
|
|
7436
|
+
const busy = error.code === "EADDRINUSE";
|
|
7437
|
+
const note = busy ? `not started: port ${numberPreference("webPort")} is in use` : `not started: ${error instanceof Error ? error.message : String(error)}`;
|
|
7438
|
+
return { server: null, status: { url: null, note } };
|
|
7439
|
+
}
|
|
7440
|
+
}
|
|
6200
7441
|
async function runTui(vaultPath) {
|
|
6201
7442
|
const vault = vaultPath ?? defaultVaultPath();
|
|
7443
|
+
const web = startCompanionWeb(vault);
|
|
6202
7444
|
const renderer = await createCliRenderer({ exitOnCtrlC: false, useMouse: booleanPreference("mouse") });
|
|
6203
7445
|
const clipboard = new Clipboard({
|
|
6204
7446
|
osc52: (text) => text ? renderer.copyToClipboardOSC52(text) : renderer.clearClipboardOSC52()
|
|
6205
7447
|
});
|
|
6206
7448
|
const sessionSink = { current: null };
|
|
6207
7449
|
renderer.once("destroy", () => {
|
|
7450
|
+
web.server?.stop();
|
|
6208
7451
|
clipboard.handOffPendingClear();
|
|
6209
7452
|
if (sessionSink.current)
|
|
6210
7453
|
closeSessionAndRecordSeal(vault, sessionSink.current).catch(() => {});
|
|
6211
7454
|
sessionSink.current = null;
|
|
6212
7455
|
});
|
|
6213
|
-
createRoot(renderer).render(/* @__PURE__ */
|
|
7456
|
+
createRoot(renderer).render(/* @__PURE__ */ jsx8(App, {
|
|
6214
7457
|
vaultPath: vault,
|
|
6215
7458
|
clipboard,
|
|
6216
7459
|
revealMs: numberPreference("revealSeconds") * 1000,
|
|
6217
7460
|
clipboardClearMs: numberPreference("clipboardClearSeconds") * 1000,
|
|
6218
7461
|
idleLockMs: numberPreference("idleLockSeconds") * 1000,
|
|
6219
7462
|
onQuit: () => renderer.destroy(),
|
|
6220
|
-
sessionSink
|
|
7463
|
+
sessionSink,
|
|
7464
|
+
web: web.status
|
|
6221
7465
|
}));
|
|
6222
7466
|
}
|
|
6223
7467
|
var init_tui = __esm(() => {
|
|
6224
7468
|
init_src3();
|
|
6225
7469
|
init_os_secrets();
|
|
7470
|
+
init_server();
|
|
6226
7471
|
init_clipboard();
|
|
6227
7472
|
init_components();
|
|
6228
7473
|
init_context();
|
|
@@ -6238,9 +7483,9 @@ var init_tui = __esm(() => {
|
|
|
6238
7483
|
init_clipboard();
|
|
6239
7484
|
init_passkey();
|
|
6240
7485
|
init_package();
|
|
6241
|
-
import { existsSync as
|
|
7486
|
+
import { existsSync as existsSync7, readFileSync as readFileSync6, writeFileSync as writeFileSync3 } from "fs";
|
|
6242
7487
|
import { createInterface as createInterface2 } from "readline/promises";
|
|
6243
|
-
import { basename as
|
|
7488
|
+
import { basename as basename5, isAbsolute, resolve as resolve7 } from "path";
|
|
6244
7489
|
|
|
6245
7490
|
// apps/cli/src/password.ts
|
|
6246
7491
|
import { createInterface } from "readline/promises";
|
|
@@ -6682,321 +7927,7 @@ async function daemonStop(options) {
|
|
|
6682
7927
|
// apps/cli/src/index.ts
|
|
6683
7928
|
init_src3();
|
|
6684
7929
|
init_os_secrets();
|
|
6685
|
-
|
|
6686
|
-
// apps/web/src/server.ts
|
|
6687
|
-
init_src();
|
|
6688
|
-
init_src3();
|
|
6689
|
-
init_os_secrets();
|
|
6690
|
-
import { randomBytes as randomBytes6 } from "crypto";
|
|
6691
|
-
import { resolve as resolve4 } from "path";
|
|
6692
|
-
function json2(data, status = 200, headers) {
|
|
6693
|
-
return new Response(JSON.stringify(data, null, 2), {
|
|
6694
|
-
headers: {
|
|
6695
|
-
"content-type": "application/json; charset=utf-8",
|
|
6696
|
-
...headers ?? {}
|
|
6697
|
-
},
|
|
6698
|
-
status
|
|
6699
|
-
});
|
|
6700
|
-
}
|
|
6701
|
-
function html(body) {
|
|
6702
|
-
return new Response(body, {
|
|
6703
|
-
headers: {
|
|
6704
|
-
"content-type": "text/html; charset=utf-8"
|
|
6705
|
-
}
|
|
6706
|
-
});
|
|
6707
|
-
}
|
|
6708
|
-
function parseCookies(request) {
|
|
6709
|
-
const cookieHeader = request.headers.get("cookie") ?? "";
|
|
6710
|
-
return Object.fromEntries(cookieHeader.split(";").map((part) => part.trim()).filter(Boolean).map((part) => {
|
|
6711
|
-
const index = part.indexOf("=");
|
|
6712
|
-
return [part.slice(0, index), decodeURIComponent(part.slice(index + 1))];
|
|
6713
|
-
}));
|
|
6714
|
-
}
|
|
6715
|
-
async function openSession(vaultPath, state) {
|
|
6716
|
-
return new VaultSession(new AuthoDatabase(vaultPath), state.rootKey, {
|
|
6717
|
-
sealBound: state.sealBound,
|
|
6718
|
-
sealRecord: await loadSealRecord(vaultPath)
|
|
6719
|
-
});
|
|
6720
|
-
}
|
|
6721
|
-
function requireSession(request, sessions) {
|
|
6722
|
-
const cookies = parseCookies(request);
|
|
6723
|
-
const sessionId = cookies.autho_session;
|
|
6724
|
-
if (!sessionId) {
|
|
6725
|
-
throw new Error("Missing web session");
|
|
6726
|
-
}
|
|
6727
|
-
const session = sessions.get(sessionId);
|
|
6728
|
-
if (!session) {
|
|
6729
|
-
throw new Error("Unknown web session");
|
|
6730
|
-
}
|
|
6731
|
-
if (Date.parse(session.expiresAt) <= Date.now()) {
|
|
6732
|
-
sessions.delete(sessionId);
|
|
6733
|
-
throw new Error("Expired web session");
|
|
6734
|
-
}
|
|
6735
|
-
return { ...session, id: sessionId };
|
|
6736
|
-
}
|
|
6737
|
-
async function readJson2(request) {
|
|
6738
|
-
return await request.json();
|
|
6739
|
-
}
|
|
6740
|
-
function page2() {
|
|
6741
|
-
return `<!doctype html>
|
|
6742
|
-
<html lang="en">
|
|
6743
|
-
<head>
|
|
6744
|
-
<meta charset="utf-8" />
|
|
6745
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6746
|
-
<title>Autho</title>
|
|
6747
|
-
<style>
|
|
6748
|
-
:root { color-scheme: light; font-family: ui-sans-serif, system-ui, sans-serif; }
|
|
6749
|
-
body { margin: 0; background: #f5f1e8; color: #1f2937; }
|
|
6750
|
-
main { max-width: 760px; margin: 0 auto; padding: 32px 20px 64px; }
|
|
6751
|
-
section { background: #fffdf8; border: 1px solid #d6cbb8; border-radius: 16px; padding: 20px; margin-bottom: 16px; box-shadow: 0 8px 30px rgba(83,58,18,0.08); }
|
|
6752
|
-
h1 { margin-top: 0; font-size: 2rem; }
|
|
6753
|
-
input, select, button { font: inherit; padding: 10px 12px; border-radius: 10px; border: 1px solid #bca889; }
|
|
6754
|
-
button { background: #1f4d3a; color: white; border: none; cursor: pointer; }
|
|
6755
|
-
form { display: flex; gap: 8px; flex-wrap: wrap; }
|
|
6756
|
-
pre { background: #1f2937; color: #f9fafb; padding: 12px; border-radius: 12px; overflow: auto; }
|
|
6757
|
-
ul { padding-left: 18px; }
|
|
6758
|
-
</style>
|
|
6759
|
-
</head>
|
|
6760
|
-
<body>
|
|
6761
|
-
<main>
|
|
6762
|
-
<section>
|
|
6763
|
-
<h1>Autho Local Web</h1>
|
|
6764
|
-
<p>Local-only Bun web UI for vault unlock and secret browsing.</p>
|
|
6765
|
-
<form id="unlock-form">
|
|
6766
|
-
<input id="password" type="password" placeholder="Master password" required />
|
|
6767
|
-
<input id="totp" inputmode="numeric" autocomplete="one-time-code" placeholder="Authenticator code (if enabled)" />
|
|
6768
|
-
<button type="submit">Unlock</button>
|
|
6769
|
-
</form>
|
|
6770
|
-
</section>
|
|
6771
|
-
<section>
|
|
6772
|
-
<h2>Secrets</h2>
|
|
6773
|
-
<button id="refresh">Refresh</button>
|
|
6774
|
-
<ul id="secret-list"></ul>
|
|
6775
|
-
<pre id="output"></pre>
|
|
6776
|
-
</section>
|
|
6777
|
-
<section id="linked" hidden>
|
|
6778
|
-
<h2>Linked to <span id="linked-name"></span></h2>
|
|
6779
|
-
<ul id="linked-list"></ul>
|
|
6780
|
-
<p id="linked-from"></p>
|
|
6781
|
-
<form id="link-form">
|
|
6782
|
-
<input id="link-ref" placeholder="Secret name or id to link" required />
|
|
6783
|
-
<button type="submit">Link</button>
|
|
6784
|
-
</form>
|
|
6785
|
-
</section>
|
|
6786
|
-
</main>
|
|
6787
|
-
<script>
|
|
6788
|
-
const output = document.getElementById('output');
|
|
6789
|
-
const secretList = document.getElementById('secret-list');
|
|
6790
|
-
async function refresh() {
|
|
6791
|
-
const response = await fetch('/api/secrets');
|
|
6792
|
-
if (!response.ok) {
|
|
6793
|
-
output.textContent = await response.text();
|
|
6794
|
-
return;
|
|
6795
|
-
}
|
|
6796
|
-
const data = await response.json();
|
|
6797
|
-
secretList.innerHTML = '';
|
|
6798
|
-
data.data.forEach((secret) => {
|
|
6799
|
-
const item = document.createElement('li');
|
|
6800
|
-
const open = document.createElement('a');
|
|
6801
|
-
open.href = '#';
|
|
6802
|
-
open.textContent = secret.name + " (" + secret.type + ")" + (secret.linkCount ? " \xB7 " + secret.linkCount + " linked" : "");
|
|
6803
|
-
open.addEventListener('click', (event) => { event.preventDefault(); showSecret(secret.id); });
|
|
6804
|
-
item.appendChild(open);
|
|
6805
|
-
secretList.appendChild(item);
|
|
6806
|
-
});
|
|
6807
|
-
output.textContent = JSON.stringify(data, null, 2);
|
|
6808
|
-
}
|
|
6809
|
-
let current = null;
|
|
6810
|
-
async function showSecret(ref) {
|
|
6811
|
-
const response = await fetch('/api/secrets/' + encodeURIComponent(ref));
|
|
6812
|
-
if (!response.ok) {
|
|
6813
|
-
output.textContent = await response.text();
|
|
6814
|
-
return;
|
|
6815
|
-
}
|
|
6816
|
-
const secret = (await response.json()).data;
|
|
6817
|
-
current = secret;
|
|
6818
|
-
const { links, linkedFrom, ...rest } = secret;
|
|
6819
|
-
output.textContent = JSON.stringify(rest, null, 2);
|
|
6820
|
-
document.getElementById('linked').hidden = false;
|
|
6821
|
-
document.getElementById('linked-name').textContent = secret.name;
|
|
6822
|
-
const list = document.getElementById('linked-list');
|
|
6823
|
-
list.innerHTML = '';
|
|
6824
|
-
if (!links.length) {
|
|
6825
|
-
list.innerHTML = '<li>No linked secrets</li>';
|
|
6826
|
-
}
|
|
6827
|
-
links.forEach((linked) => {
|
|
6828
|
-
const item = document.createElement('li');
|
|
6829
|
-
const open = document.createElement('a');
|
|
6830
|
-
open.href = '#';
|
|
6831
|
-
open.textContent = linked.name + " (" + linked.type + ") ";
|
|
6832
|
-
open.addEventListener('click', (event) => { event.preventDefault(); showSecret(linked.id); });
|
|
6833
|
-
const unlink = document.createElement('button');
|
|
6834
|
-
unlink.textContent = 'Unlink';
|
|
6835
|
-
unlink.addEventListener('click', () => changeLink('DELETE', linked.id));
|
|
6836
|
-
item.append(open, unlink);
|
|
6837
|
-
list.appendChild(item);
|
|
6838
|
-
});
|
|
6839
|
-
document.getElementById('linked-from').textContent = linkedFrom.length
|
|
6840
|
-
? 'Linked from: ' + linkedFrom.map((primary) => primary.name).join(', ')
|
|
6841
|
-
: '';
|
|
6842
|
-
}
|
|
6843
|
-
async function changeLink(method, secret) {
|
|
6844
|
-
const response = await fetch('/api/links', {
|
|
6845
|
-
method,
|
|
6846
|
-
headers: { 'content-type': 'application/json' },
|
|
6847
|
-
body: JSON.stringify({ primary: current.id, secret })
|
|
6848
|
-
});
|
|
6849
|
-
if (!response.ok) {
|
|
6850
|
-
output.textContent = await response.text();
|
|
6851
|
-
return;
|
|
6852
|
-
}
|
|
6853
|
-
await showSecret(current.id);
|
|
6854
|
-
await refresh();
|
|
6855
|
-
}
|
|
6856
|
-
document.getElementById('link-form').addEventListener('submit', async (event) => {
|
|
6857
|
-
event.preventDefault();
|
|
6858
|
-
const input = document.getElementById('link-ref');
|
|
6859
|
-
await changeLink('POST', input.value);
|
|
6860
|
-
input.value = '';
|
|
6861
|
-
});
|
|
6862
|
-
document.getElementById('unlock-form').addEventListener('submit', async (event) => {
|
|
6863
|
-
event.preventDefault();
|
|
6864
|
-
const response = await fetch('/api/session/unlock', {
|
|
6865
|
-
method: 'POST',
|
|
6866
|
-
headers: { 'content-type': 'application/json' },
|
|
6867
|
-
body: JSON.stringify({
|
|
6868
|
-
password: document.getElementById('password').value,
|
|
6869
|
-
totp: document.getElementById('totp').value || undefined
|
|
6870
|
-
})
|
|
6871
|
-
});
|
|
6872
|
-
output.textContent = await response.text();
|
|
6873
|
-
if (response.ok) {
|
|
6874
|
-
await refresh();
|
|
6875
|
-
}
|
|
6876
|
-
});
|
|
6877
|
-
document.getElementById('refresh').addEventListener('click', refresh);
|
|
6878
|
-
</script>
|
|
6879
|
-
</body>
|
|
6880
|
-
</html>`;
|
|
6881
|
-
}
|
|
6882
|
-
async function startWebServer(options = {}) {
|
|
6883
|
-
const vaultPath = resolve4(options.vaultPath ?? defaultVaultPath());
|
|
6884
|
-
const host = options.host ?? "127.0.0.1";
|
|
6885
|
-
const port = options.port ?? 8061;
|
|
6886
|
-
const sessions = new Map;
|
|
6887
|
-
const cleanup = () => {
|
|
6888
|
-
for (const [id, session] of sessions.entries()) {
|
|
6889
|
-
if (Date.parse(session.expiresAt) <= Date.now()) {
|
|
6890
|
-
sessions.delete(id);
|
|
6891
|
-
}
|
|
6892
|
-
}
|
|
6893
|
-
};
|
|
6894
|
-
const server = Bun.serve({
|
|
6895
|
-
fetch: async (request) => {
|
|
6896
|
-
cleanup();
|
|
6897
|
-
const url = new URL(request.url);
|
|
6898
|
-
try {
|
|
6899
|
-
if (request.method === "GET" && url.pathname === "/health") {
|
|
6900
|
-
return json2({ ok: true, running: true, vaultPath });
|
|
6901
|
-
}
|
|
6902
|
-
if (request.method === "GET" && url.pathname === "/") {
|
|
6903
|
-
return html(page2());
|
|
6904
|
-
}
|
|
6905
|
-
if (request.method === "POST" && url.pathname === "/api/session/unlock") {
|
|
6906
|
-
const body = await readJson2(request);
|
|
6907
|
-
const ttlSeconds = body.ttlSeconds ?? 3600;
|
|
6908
|
-
if (ttlSeconds <= 0 || ttlSeconds > 86400) {
|
|
6909
|
-
return json2({ error: "Session TTL must be between 1 and 86400 seconds" }, 400);
|
|
6910
|
-
}
|
|
6911
|
-
const { rootKey, sealBound } = VaultService.unlockRootKey(vaultPath, {
|
|
6912
|
-
password: body.password,
|
|
6913
|
-
sealRecord: await loadSealRecord(vaultPath),
|
|
6914
|
-
totp: body.totp
|
|
6915
|
-
});
|
|
6916
|
-
const sessionId = randomBytes6(16).toString("hex");
|
|
6917
|
-
const expiresAt = new Date(Date.now() + ttlSeconds * 1000).toISOString();
|
|
6918
|
-
sessions.set(sessionId, { expiresAt, rootKey, sealBound });
|
|
6919
|
-
return json2({ expiresAt, sessionId }, 200, { "set-cookie": `autho_session=${sessionId}; HttpOnly; SameSite=Strict; Path=/; Secure` });
|
|
6920
|
-
}
|
|
6921
|
-
if (request.method === "POST" && url.pathname === "/api/session/lock") {
|
|
6922
|
-
const cookies = parseCookies(request);
|
|
6923
|
-
if (cookies.autho_session) {
|
|
6924
|
-
sessions.delete(cookies.autho_session);
|
|
6925
|
-
}
|
|
6926
|
-
return json2({ locked: true }, 200, { "set-cookie": "autho_session=; Max-Age=0; Path=/; Secure" });
|
|
6927
|
-
}
|
|
6928
|
-
if (url.pathname.startsWith("/api/")) {
|
|
6929
|
-
const webSession = requireSession(request, sessions);
|
|
6930
|
-
const session = await openSession(vaultPath, webSession);
|
|
6931
|
-
try {
|
|
6932
|
-
if (request.method === "GET" && url.pathname === "/api/status") {
|
|
6933
|
-
return json2({
|
|
6934
|
-
initialized: true,
|
|
6935
|
-
secretCount: session.listSecrets().length,
|
|
6936
|
-
unlocked: true,
|
|
6937
|
-
vaultPath
|
|
6938
|
-
});
|
|
6939
|
-
}
|
|
6940
|
-
if (request.method === "GET" && url.pathname === "/api/secrets") {
|
|
6941
|
-
return json2({ data: session.listSecretIndex() });
|
|
6942
|
-
}
|
|
6943
|
-
if (request.method === "GET" && url.pathname.startsWith("/api/secrets/")) {
|
|
6944
|
-
const ref = decodeURIComponent(url.pathname.slice("/api/secrets/".length));
|
|
6945
|
-
const { linkedFrom, links } = session.getLinks(ref);
|
|
6946
|
-
return json2({ data: { ...session.getSecret(ref), linkedFrom, links } });
|
|
6947
|
-
}
|
|
6948
|
-
if ((request.method === "POST" || request.method === "DELETE") && url.pathname === "/api/links") {
|
|
6949
|
-
const body = await readJson2(request);
|
|
6950
|
-
return json2({
|
|
6951
|
-
data: request.method === "POST" ? session.linkSecrets(body.primary, body.secret) : session.unlinkSecrets(body.primary, body.secret)
|
|
6952
|
-
});
|
|
6953
|
-
}
|
|
6954
|
-
if (request.method === "POST" && url.pathname === "/api/secrets") {
|
|
6955
|
-
const body = await readJson2(request);
|
|
6956
|
-
return json2({
|
|
6957
|
-
data: session.addSecret({
|
|
6958
|
-
metadata: Object.fromEntries(Object.entries({
|
|
6959
|
-
algorithm: body.algorithm,
|
|
6960
|
-
description: body.description,
|
|
6961
|
-
digits: body.digits,
|
|
6962
|
-
url: body.url
|
|
6963
|
-
}).filter(([, value]) => value !== undefined)),
|
|
6964
|
-
name: body.name,
|
|
6965
|
-
type: body.type,
|
|
6966
|
-
username: body.username,
|
|
6967
|
-
value: body.value
|
|
6968
|
-
})
|
|
6969
|
-
}, 201);
|
|
6970
|
-
}
|
|
6971
|
-
if (request.method === "DELETE" && url.pathname.startsWith("/api/secrets/")) {
|
|
6972
|
-
const ref = decodeURIComponent(url.pathname.slice("/api/secrets/".length));
|
|
6973
|
-
return json2({ data: session.removeSecret(ref, { withLinked: url.searchParams.get("withLinked") === "1" }) });
|
|
6974
|
-
}
|
|
6975
|
-
if (request.method === "GET" && url.pathname.startsWith("/api/otp/")) {
|
|
6976
|
-
const ref = decodeURIComponent(url.pathname.slice("/api/otp/".length));
|
|
6977
|
-
return json2({ data: session.generateOtp(ref) });
|
|
6978
|
-
}
|
|
6979
|
-
} finally {
|
|
6980
|
-
await closeSessionAndRecordSeal(vaultPath, session);
|
|
6981
|
-
}
|
|
6982
|
-
}
|
|
6983
|
-
} catch (error) {
|
|
6984
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
6985
|
-
const status = /session/i.test(message) ? 401 : 400;
|
|
6986
|
-
return json2({ error: message }, status);
|
|
6987
|
-
}
|
|
6988
|
-
return json2({ error: "Not found" }, 404);
|
|
6989
|
-
},
|
|
6990
|
-
hostname: host,
|
|
6991
|
-
port
|
|
6992
|
-
});
|
|
6993
|
-
process.on("SIGINT", () => process.exit(0));
|
|
6994
|
-
process.on("SIGTERM", () => process.exit(0));
|
|
6995
|
-
console.log(`Autho web server listening on http://${host}:${server.port}`);
|
|
6996
|
-
await new Promise(() => {});
|
|
6997
|
-
}
|
|
6998
|
-
|
|
6999
|
-
// apps/cli/src/index.ts
|
|
7930
|
+
init_server();
|
|
7000
7931
|
function parseArgs(argv) {
|
|
7001
7932
|
const dashDashIndex = argv.indexOf("--");
|
|
7002
7933
|
const main = dashDashIndex === -1 ? argv : argv.slice(0, dashDashIndex);
|
|
@@ -7090,7 +8021,7 @@ function printSealChanges(changes, diffTrusted) {
|
|
|
7090
8021
|
}
|
|
7091
8022
|
}
|
|
7092
8023
|
function absolutePath(path) {
|
|
7093
|
-
return
|
|
8024
|
+
return resolve7(path);
|
|
7094
8025
|
}
|
|
7095
8026
|
function buildSecretMetadata(args) {
|
|
7096
8027
|
return Object.fromEntries(Object.entries({
|
|
@@ -7435,10 +8366,11 @@ function help() {
|
|
|
7435
8366
|
"",
|
|
7436
8367
|
"Notes:",
|
|
7437
8368
|
" Running `autho` with no arguments opens the interactive TUI.",
|
|
8369
|
+
" While the TUI is open it also serves the web UI on localhost:<webPort> (webWithTui=false to opt out).",
|
|
7438
8370
|
" Config is stored in ~/.autho/config.json (always at ~/.autho).",
|
|
7439
8371
|
" The vault directory can be customized via `autho init` or `autho config set vaultDir <path>`.",
|
|
7440
8372
|
" Config keys: vaultDir, revealSeconds, clipboardClearSeconds, idleLockSeconds, passwordLength,",
|
|
7441
|
-
" passwordSymbols, mouse, defaultLeaseTtl, daemonTtlSeconds, webPort (see `autho config show`).",
|
|
8373
|
+
" passwordSymbols, mouse, defaultLeaseTtl, daemonTtlSeconds, webPort, webWithTui (see `autho config show`).",
|
|
7442
8374
|
" lease create uses the defaultLeaseTtl setting when --ttl is omitted (0 = --ttl required).",
|
|
7443
8375
|
" A lease on a secret also covers the secrets linked to it, read live (--no-links to opt out).",
|
|
7444
8376
|
" env and exec inject an OTP secret's current code, never its seed.",
|
|
@@ -7466,7 +8398,7 @@ async function main() {
|
|
|
7466
8398
|
const statePath = absolutePath(getString(args, "state-file") ?? defaultDaemonStatePath());
|
|
7467
8399
|
const explicitProjectFile = getString(args, "project-file");
|
|
7468
8400
|
const fallbackProjectFile = defaultProjectFilePath();
|
|
7469
|
-
const projectFile = explicitProjectFile ?? (
|
|
8401
|
+
const projectFile = explicitProjectFile ?? (existsSync7(fallbackProjectFile) ? fallbackProjectFile : undefined);
|
|
7470
8402
|
let password = getString(args, "password") ?? process.env.AUTHO_MASTER_PASSWORD;
|
|
7471
8403
|
if (!password) {
|
|
7472
8404
|
password = await loadVaultPassword(vaultPath) ?? undefined;
|
|
@@ -7525,7 +8457,7 @@ async function main() {
|
|
|
7525
8457
|
console.log(" Tip: Use a cloud-synced folder (e.g. Google Drive) to share the vault across machines.");
|
|
7526
8458
|
const customDir = (await readLine(` Path (Enter to keep default): `)).trim();
|
|
7527
8459
|
if (customDir && customDir !== currentDir) {
|
|
7528
|
-
const resolved =
|
|
8460
|
+
const resolved = resolve7(customDir).replace(/\\/g, "/");
|
|
7529
8461
|
saveConfig({ ...config, vaultDir: resolved });
|
|
7530
8462
|
effectiveVaultPath = resolved + "/vault.db";
|
|
7531
8463
|
console.log(` \x1B[32m\u2713\x1B[0m Vault directory set to ${resolved}`);
|
|
@@ -7593,7 +8525,7 @@ async function main() {
|
|
|
7593
8525
|
if (key === "autoLock") {
|
|
7594
8526
|
updated.autoLock = value === "true";
|
|
7595
8527
|
} else if (key === "vaultDir") {
|
|
7596
|
-
updated.vaultDir = isAbsolute(value) ? value :
|
|
8528
|
+
updated.vaultDir = isAbsolute(value) ? value : resolve7(value);
|
|
7597
8529
|
} else if (key === "editor") {
|
|
7598
8530
|
updated.editor = value;
|
|
7599
8531
|
} else if (key === "autoLockTimeout") {
|
|
@@ -7767,7 +8699,7 @@ async function main() {
|
|
|
7767
8699
|
const prfSalt = newPrfSalt();
|
|
7768
8700
|
const result = await runPasskeyCeremony({
|
|
7769
8701
|
mode: "register",
|
|
7770
|
-
userName: `autho (${
|
|
8702
|
+
userName: `autho (${basename5(vaultPath)})`,
|
|
7771
8703
|
excludeCredentialIds: existing.map((p) => p.credentialId),
|
|
7772
8704
|
prfSalt
|
|
7773
8705
|
}, { onUrl: printCeremonyUrl });
|
|
@@ -7850,16 +8782,7 @@ async function main() {
|
|
|
7850
8782
|
}
|
|
7851
8783
|
if (scope === "unlock" /* Unlock */ && getString(args, "recovery-file")) {
|
|
7852
8784
|
const recoveryFilePath = absolutePath(getString(args, "recovery-file"));
|
|
7853
|
-
const
|
|
7854
|
-
const lines = content.split(`
|
|
7855
|
-
`);
|
|
7856
|
-
const tokenLineIdx = lines.findIndex((l) => l.trim() === "RECOVERY TOKEN:");
|
|
7857
|
-
if (tokenLineIdx === -1)
|
|
7858
|
-
throw new Error("Invalid recovery file format");
|
|
7859
|
-
const rawTokenLine = lines.slice(tokenLineIdx + 1).find((l) => l.trim() !== "") ?? "";
|
|
7860
|
-
const token = rawTokenLine.replace(/-/g, "").toLowerCase();
|
|
7861
|
-
if (!token)
|
|
7862
|
-
throw new Error("Invalid recovery file format: missing token");
|
|
8785
|
+
const token = parseRecoveryFile(readFileSync6(recoveryFilePath, "utf8"));
|
|
7863
8786
|
const recoverySession = VaultService.unlock(vaultPath, { password: "", recovery: token });
|
|
7864
8787
|
output({ unlocked: true, vaultPath }, jsonMode);
|
|
7865
8788
|
recoverySession.close();
|