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.
Files changed (3) hide show
  1. package/README.md +8 -2
  2. package/dist/autho.js +1402 -479
  3. 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.5",
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
- const raw = JSON.parse(readFileSync3(filePath, "utf8"));
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" || key.name === "h")
4619
+ if (key.name === "left")
3726
4620
  cycleType(-1);
3727
- else if (key.name === "right" || key.name === "l" || key.name === "space")
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" || key.ctrl && key.name === "p") {
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" || key.ctrl && key.name === "n") {
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 existsSync5, writeFileSync as writeFileSync2 } from "fs";
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 join3, resolve as resolve5 } from "path";
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" }, [join3(homedir2(), "autho-recovery.txt"), ""]))
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() ? resolve5(first.trim()).replace(/\\/g, "/") : null;
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 && !existsSync5(join3(target, "vault.db"));
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 = resolve5(first.trim() || join3(homedir2(), "autho-recovery.txt"));
4444
- if (existsSync5(target)) {
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 (!existsSync5(dirname3(target))) {
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/vault.tsx
6204
+ // apps/cli/src/tui/links.tsx
5309
6205
  import { useKeyboard as useKeyboard6, useTerminalDimensions as useTerminalDimensions4 } from "@opentui/react";
5310
- import { useCallback as useCallback3, useEffect as useEffect6, useMemo as useMemo5, useState as useState6 } from "react";
5311
- import { jsx as jsx6, jsxs as jsxs6, Fragment as Fragment2 } from "@opentui/react/jsx-runtime";
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 } = useTerminalDimensions4();
6386
+ const { width, height } = useTerminalDimensions5();
5315
6387
  const wide = width >= WIDE_MIN_COLUMNS;
5316
- const [entries, setEntries] = useState6([]);
5317
- const [query, setQuery] = useState6("");
5318
- const [pane, setPane] = useState6("list");
5319
- const [actionIndex, setActionIndex] = useState6(0);
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] = useState6(initialSelectedId ?? null);
5322
- const [detailOpen, setDetailOpen] = useState6(false);
5323
- const [revealed, setRevealed] = useState6(null);
5324
- const [otp, setOtp] = useState6(null);
5325
- const [confirmDelete, setConfirmDelete] = useState6(false);
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 = useMemo5(() => fuzzyFilter(entries, query, (e) => [e.name, e.username, e.url, e.description, typeLabel(e.type)]), [entries, query]);
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 now = useNow(1000, Boolean(revealed || otp));
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 generateOtp = useCallback3((entry, options) => {
6453
+ const makeOtp = useCallback3((id, options) => {
5364
6454
  try {
5365
- const result = session.generateOtp(entry.id, options);
5366
- const next = { id: entry.id, code: result.code, expiresAt: Date.parse(result.expiresAt) };
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
- app.toast(`Deleted "${entry.name}"`);
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
- useKeyboard6((key) => {
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" || key.name === "l") {
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 = useMemo5(() => {
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__ */ jsx6("box", {
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__ */ jsx6("box", {
6825
+ children: filtered.length === 0 ? /* @__PURE__ */ jsx7("box", {
5682
6826
  padding: 1,
5683
- children: /* @__PURE__ */ jsx6("text", {
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__ */ jsx6("box", {
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__ */ jsxs6("text", {
6851
+ children: /* @__PURE__ */ jsxs7("text", {
5708
6852
  children: [
5709
- /* @__PURE__ */ jsxs6("span", {
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__ */ jsx6("strong", {
6860
+ isSelected ? /* @__PURE__ */ jsx7("strong", {
5717
6861
  fg: theme.accent,
5718
6862
  children: name
5719
- }) : /* @__PURE__ */ jsx6("span", {
6863
+ }) : /* @__PURE__ */ jsx7("span", {
5720
6864
  fg: theme.text,
5721
6865
  children: name
5722
6866
  }),
5723
- /* @__PURE__ */ jsx6("span", {
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__ */ jsx6(Detail, {
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__ */ jsx6("box", {
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__ */ jsx6("text", {
6899
+ children: /* @__PURE__ */ jsx7("text", {
5747
6900
  fg: theme.dim,
5748
6901
  children: "Nothing selected."
5749
6902
  })
5750
6903
  });
5751
- return /* @__PURE__ */ jsxs6("box", {
6904
+ return /* @__PURE__ */ jsxs7("box", {
5752
6905
  flexDirection: "column",
5753
6906
  flexGrow: 1,
5754
6907
  width: "100%",
5755
6908
  children: [
5756
- /* @__PURE__ */ jsxs6("box", {
6909
+ /* @__PURE__ */ jsxs7("box", {
5757
6910
  flexDirection: "row",
5758
6911
  paddingX: 1,
5759
6912
  height: 1,
5760
6913
  children: [
5761
- /* @__PURE__ */ jsx6("text", {
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__ */ jsx6(TextField, {
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__ */ jsxs6("box", {
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__ */ jsxs6("box", {
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__ */ jsxs6("text", {
7008
+ /* @__PURE__ */ jsxs7("text", {
5808
7009
  children: [
5809
- /* @__PURE__ */ jsxs6("span", {
7010
+ /* @__PURE__ */ jsxs7("span", {
5810
7011
  fg: badge.color,
5811
7012
  children: [
5812
7013
  badge.glyph,
5813
7014
  " "
5814
7015
  ]
5815
7016
  }),
5816
- /* @__PURE__ */ jsx6("strong", {
7017
+ /* @__PURE__ */ jsx7("strong", {
5817
7018
  fg: theme.accent,
5818
7019
  children: entry.name
5819
7020
  })
5820
7021
  ]
5821
7022
  }),
5822
- /* @__PURE__ */ jsxs6("box", {
7023
+ /* @__PURE__ */ jsxs7("box", {
5823
7024
  flexDirection: "column",
5824
7025
  children: [
5825
- entry.type !== "note" ? /* @__PURE__ */ jsx6(FieldRow, {
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__ */ jsx6(FieldRow, {
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__ */ jsx6(FieldRow, {
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__ */ jsx6(FieldRow, {
7041
+ entry.description ? /* @__PURE__ */ jsx7(FieldRow, {
5841
7042
  label: "Notes",
5842
7043
  value: entry.description
5843
7044
  }) : null,
5844
- /* @__PURE__ */ jsx6(FieldRow, {
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__ */ jsx6("box", {
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__ */ jsxs6(Fragment2, {
7060
+ children: otp ? /* @__PURE__ */ jsxs7(Fragment2, {
5860
7061
  children: [
5861
- /* @__PURE__ */ jsx6("text", {
7062
+ /* @__PURE__ */ jsx7("text", {
5862
7063
  fg: theme.success,
5863
7064
  selectable: true,
5864
- children: /* @__PURE__ */ jsx6("strong", {
7065
+ children: /* @__PURE__ */ jsx7("strong", {
5865
7066
  children: `${otp.code.slice(0, 3)} ${otp.code.slice(3)}`
5866
7067
  })
5867
7068
  }),
5868
- /* @__PURE__ */ jsxs6("text", {
7069
+ /* @__PURE__ */ jsxs7("text", {
5869
7070
  children: [
5870
- /* @__PURE__ */ jsx6("span", {
7071
+ /* @__PURE__ */ jsx7("span", {
5871
7072
  fg: otpSeconds <= 5 ? theme.danger : theme.success,
5872
7073
  children: "\u2588".repeat(otpFilled)
5873
7074
  }),
5874
- /* @__PURE__ */ jsx6("span", {
7075
+ /* @__PURE__ */ jsx7("span", {
5875
7076
  fg: theme.chip,
5876
7077
  children: "\u2588".repeat(otpBar - otpFilled)
5877
7078
  }),
5878
- /* @__PURE__ */ jsxs6("span", {
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__ */ jsx6("text", {
7090
+ }) : /* @__PURE__ */ jsx7("text", {
5890
7091
  fg: theme.dim,
5891
7092
  children: "press o to show the code"
5892
7093
  })
5893
7094
  }) : null,
5894
- revealed ? /* @__PURE__ */ jsxs6("text", {
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__ */ jsx6("box", {
7129
+ confirmDelete ? /* @__PURE__ */ jsx7("box", {
5903
7130
  backgroundColor: theme.dangerBg,
5904
7131
  paddingX: 1,
5905
- children: /* @__PURE__ */ jsxs6("text", {
7132
+ children: /* @__PURE__ */ jsxs7("text", {
5906
7133
  fg: theme.danger,
5907
7134
  children: [
5908
- /* @__PURE__ */ jsxs6("strong", {
7135
+ /* @__PURE__ */ jsxs7("strong", {
5909
7136
  children: [
5910
7137
  'Delete "',
5911
7138
  entry.name,
5912
7139
  '" permanently?'
5913
7140
  ]
5914
7141
  }),
5915
- /* @__PURE__ */ jsx6("span", {
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__ */ jsx6("box", {
7148
+ }) : /* @__PURE__ */ jsx7("box", {
5922
7149
  flexDirection: "row",
5923
7150
  gap: 1,
5924
7151
  flexWrap: "wrap",
5925
- children: actions.map((action, i) => /* @__PURE__ */ jsx6(Button, {
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 basename3 } from "path";
7174
+ import { basename as basename4 } from "path";
5947
7175
  import { createCliRenderer } from "@opentui/core";
5948
- import { createRoot, useKeyboard as useKeyboard7, useRenderer, useSelectionHandler } from "@opentui/react";
5949
- import { useCallback as useCallback4, useEffect as useEffect7, useMemo as useMemo6, useRef as useRef7, useState as useState7 } from "react";
5950
- import { jsx as jsx7, jsxs as jsxs7 } from "@opentui/react/jsx-runtime";
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] = useState7({ revealMs: initialRevealMs, clipboardClearMs: initialClipboardClearMs, idleLockMs: initialIdleLockMs });
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] = useState7({ name: "unlock" });
5957
- const [session, setSession] = useState7(null);
5958
- const [toastState, setToastState] = useState7(null);
5959
- const [hints, setHints] = useState7([]);
5960
- const [paletteOpen, setPaletteOpen] = useState7(false);
5961
- const commandsRef = useRef7([]);
5962
- const copyTargetRef = useRef7(null);
5963
- const sessionRef = useRef7(null);
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 = useRef7(0);
5968
- const lastActivity = useRef7(Date.now());
5969
- const toastTimer = useRef7(null);
5970
- const quitting = useRef7(false);
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 = useMemo6(() => ({
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
- useKeyboard7((key) => {
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 = basename3(vaultPath);
7333
+ const vaultName = basename4(vaultPath);
6106
7334
  let screen;
6107
7335
  if (route.name === "unlock" || !session) {
6108
- screen = /* @__PURE__ */ jsx7(UnlockScreen, {
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__ */ jsx7(SecretForm, {
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__ */ jsx7(SettingsScreen, {
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__ */ jsx7(VaultScreen, {
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__ */ jsx7(AppContext.Provider, {
7374
+ return /* @__PURE__ */ jsx8(AppContext.Provider, {
6146
7375
  value: api,
6147
- children: /* @__PURE__ */ jsxs7("box", {
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__ */ jsx7(Header, {
7387
+ /* @__PURE__ */ jsx8(Header, {
6159
7388
  title,
6160
- right: /* @__PURE__ */ jsxs7("text", {
7389
+ right: /* @__PURE__ */ jsxs8("text", {
6161
7390
  fg: theme.dim,
6162
7391
  children: [
6163
- session ? /* @__PURE__ */ jsx7("span", {
7392
+ session ? /* @__PURE__ */ jsx8("span", {
6164
7393
  fg: theme.success,
6165
7394
  children: "\u25CF unlocked"
6166
- }) : /* @__PURE__ */ jsx7("span", {
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__ */ jsx7("box", {
7404
+ /* @__PURE__ */ jsx8("box", {
6176
7405
  flexDirection: "column",
6177
7406
  flexGrow: 1,
6178
7407
  children: screen
6179
7408
  }),
6180
- /* @__PURE__ */ jsx7(StatusBar, {
7409
+ /* @__PURE__ */ jsx8(StatusBar, {
6181
7410
  hints,
6182
7411
  pinned: globalHints,
6183
7412
  toast: toastState
6184
7413
  }),
6185
- paletteOpen ? /* @__PURE__ */ jsx7(CommandPalette, {
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__ */ jsx7(App, {
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 existsSync6, readFileSync as readFileSync6, writeFileSync as writeFileSync3 } from "fs";
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 basename4, isAbsolute, resolve as resolve6 } from "path";
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 resolve6(path);
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 ?? (existsSync6(fallbackProjectFile) ? fallbackProjectFile : undefined);
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 = resolve6(customDir).replace(/\\/g, "/");
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 : resolve6(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 (${basename4(vaultPath)})`,
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 content = readFileSync6(recoveryFilePath, "utf8");
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();